js var let const之间的区别

var

var是js中最早出现的定义变量关键字,但是var有着天生的缺陷,var定义的变量并不是完全以块作为作用域的,用var来定义的变量,有时候会出现意外的结果,比如:

for (var i = 0; i < 10; i++) {
    setTimeout(function() { console.log(i); }, 100 * i);
}

这段代码输出的是:

10
10
10
10
10
10
10
10
10
10

而不是我们期待的:

0,1,2,3,4,5,6,7,8,9

这是因为setTimeout函数让后面的匿名函数延迟执行了,在第一个匿名函数执行时,for循环早就跑完了,这个时候i已经是10了,正是因为var定义的变量会因为时间跳出框外,所以在处理许多回调,事件之类的情况下会变得非常复杂。

let

let就是正常的用块来表示作用域的变量。

const

const与let的区别在于用这个关键词声明的变量不能改变。

猜你喜欢

转载自blog.csdn.net/weixin_43141482/article/details/97612396
今日推荐