001 Let 命令
ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
1、let块级作用域
{
let zifuchuan=10;
var sxt =1;
}
zifuchuan//ReferenceError: zifuchuan is not defined.
sxt//1
for循环的计数器,就很合适使用let命令
for(let i=0;i<10;i++){
//...
}
console.log(i);
//ReferenceError:i is not defined
对比var和let在循环中的应用
var a =[];
for (var i =0;i<10;i++){
a[i]=function(){
console.log(i);
};
}
a[6]();//6
上面代码输出的6
2、let不存在变量提升
var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用
为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。
//var 的情况
console.log(bar);//报错ReferenceError
let bar =2;
3、let不允许重复声明
let不允许在相同作用域内,重复声明同一个变量。
//报错
function func(){
let a=10;
var a=1;
}
//报错
function func(){
let a=10;
let a=1;
}


浙公网安备 33010602011771号