ES6 引入了新的 let 关键字
let 关键字可以将变量绑定到所在的任意作用域中(通常是 { .. } 内部) 。
下面的代码中,bar是通过let关键字,在 if(foo){...}内部声明的,在外部无法取得
var foo = true;
if (foo) {
let bar = foo * 2;
bar = something( bar );
console.log( bar );
}
console.log( bar ); // ReferenceError
下面的代码中var定义的变量不受块作用域影响,let定义的变量只能在块作用域内部取得
if(true){
{//块作用域
let a = 1;
var a2 = 2;
console.log('a='+a);//1
}
//console.log('a='+a); //Uncaught ReferenceError: a is not defined
console.log('a2='+a2);//2
}
网友评论