JavaScript变量:变量声明

特别声明:小站对部分原创文章已开启付费阅读,并开通年费VIP通道,年费价格为 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

这几天都在折腾JavaScript中有关于变量的基础知识,不折腾不知道,一折腾才知道还有很多未能明白。我把变量相关的知识分为:变量的声明变量命名原则变量值的数据类型变量作用域变量提升几个部分。为了能更好的理清楚相关的知识点,绘制了一张思维导图。感兴趣的可以点击这里查阅。(图太大,可能有不对之处,还希望大婶们指正(^_^))。

在这篇文章主要来理清楚变量声明相关的知识点。

变量声明的方法

在ES6之前,声明变量的方法有使用关键词var和在function中声明,而其中var又是最常见的声明变量方法。但在ES6中,新增了letconstclassimport几种声明变量的方法。在这篇文章,主要来看看常见的关键词varletconst声明变量的方法,以及它们之间使用的细节。

使用var声明变量

在未接触ES6之前,知道var可以声明一个变量,声明变量方法很简单,在关键词var后面紧跟一个变量名(也称之为变量的标识符),比如:

var myVar;

上面定义了一个名为myVar的变量,并且未给这个变量进行初始化(也就是没有赋值给它),这个时候其默认值为undefined。当然,我们在声明变量时,可以给其赋值:

var myVar = "w3cplus";

看上去是不是很简单。简单是简单,但使用关键词var声明变量时,也有很多有意思的东东。下面我们一条一条的看。

使用var可以重复声明变量,而且是合法的,并且是无害

var myVar;
var myVar = "w3cplus";

第一次声明变量myVar并未赋值,但紧接着进行了第二次声明,并且这次赋了一个字符串值"w3cplus"。此时,变量myVar不是undefined而是"w3cplus"

使用var声明的变量,可以被赋值多次

var myVar;
myVar = "w3cplus";
myVar = ["w3cplus",2];

这个时候变量的值既不是undefined也不是字符串"w3cplus",而是一个数组["w3cplus", 2]

使用var声明变量时,在代码块内可以修改在代码块之外声明的变量

var myVar = "w3cplus";

function fnTest(str) {
    return myVar = "W3cplus" + str;
}
fnTest("blog");
console.log(myVar); // => "W3cplusblog"

使用var声明变量的变量在全局范围内都有效

var myVar = [];
for (var i = 0; i < 10; i++) {
    myVar[i] = function () {
        console.log(i);
    }
}
myVar[6](); // => 10

上面的代码中,变量ivar声明的,由于其在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧的值,导致最后输出的是最后一轮的i的值。所以myVar[6]最后得到的值是10

使用var声明变量存在生命提升(即在声明这个变量之前

剩余80%内容付费后可查看

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/es6-variable-declaration-with-var-let-and-const.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部