ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
可以把let看成var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。
for (let i=0;i<2;i++){ console.log(i); // 输出: 0,1 } console.log(i); // 输出:undefined,严格模式下会报错
let 是在代码块内有效,var 是在全局范围内有效:
{ let a = 0; var b = 1; } a // ReferenceError: a is not defined b // 1
let 只能声明一次 var 可以声明多次:
let a = 1; var b = 3; let a = 2; // Identifier 'a' has already been declared // 报错:'a'已经被声明过了 var b = 4;
let 不存在变量提升,var 会变量提升:
console.log(a); // ReferenceError: a is not defined // 报错 a没有被定义 let a = "apple"; console.log(b); //undefined var b = "banana";