1、const和let
- let类似于var,不同的是let只在所在的代码段有效
- for循环的计数器,就很合适使用
let
命令。 - let和var的区别:
//变量i是var声明的,在全局范围内都有效。所以每一次循环,新的i值都会覆盖旧值,导致最后输出的是最后一轮的i的值。
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // //变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); //另外,let“不存在变量提升”、“暂时性死区”(使用
let
命令声明变量之前,该变量都是不可用的)、“不允许在相同作用域内,重复声明同一个变量。”