ES6 Course 101 - let

49 阅读1分钟

let 命令只在所在的代码块内有效, var 命令全局有效

for 循环计数器,很适合使用let命令

for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); //输出 6
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); //输出 10 ,因为i为var类型是全局变量

另外for循环有一个特别之处, 循环变量为父作用域,循环体内部是一个单独的子作用域。

for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i); //输出三遍 abc
}

let 所声明的变量,只能在声明后使用。

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;