JavaScript变量:变量声明
特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)
这几天都在折腾JavaScript中有关于变量的基础知识,不折腾不知道,一折腾才知道还有很多未能明白。我把变量相关的知识分为:变量的声明、变量命名原则、变量值的数据类型、变量作用域和变量提升几个部分。为了能更好的理清楚相关的知识点,绘制了一张思维导图。感兴趣的可以点击这里查阅。(图太大,可能有不对之处,还希望大婶们指正(^_^))。
在这篇文章主要来理清楚变量声明相关的知识点。
变量声明的方法
在ES6之前,声明变量的方法有使用关键词var
和在function
中声明,而其中var
又是最常见的声明变量方法。但在ES6中,新增了let
、const
、class
和import
几种声明变量的方法。在这篇文章,主要来看看常见的关键词var
、let
和const
声明变量的方法,以及它们之间使用的细节。
使用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
上面的代码中,变量i
是var
声明的,由于其在全局范围内都有效。所以每一次循环,新的i
值都会覆盖旧的值,导致最后输出的是最后一轮的i
的值。所以myVar[6]
最后得到的值是10
。
使用var
声明变量存在生命提升(即在声明这个变量之前
如需转载,烦请注明出处:https://www.w3cplus.com/javascript/es6-variable-declaration-with-var-let-and-const.html
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!