let
- let 在块级作用域有效
{
var a = '123';
let b = '456';
}
console.log(a); // 123
console.log(b); // Uncaught ReferenceError: b is not defined
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 10
var a = [];
for (let i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6](); // 6
- 不存在变量提升
console.log(a) // undefined
console.log(b); // Uncaught ReferenceError: can't access lexical declaration 'b' before initialization
var a = '123';