首页 > 代码库 > ES6中的let命令

ES6中的let命令

1.let命令的用法和var命令类似,但let命令声明的变量只在let所在的代码块内有效

1 {
2   let a=10;
3   var b=1;
4 }
5 
6 console.log(a);//Uncaught ReferenceError: a is not defined
7 console.log(b);

2.let命令不存“声明提前”现象,因此变量一定要先声明,后使用

1 console.log(foo);
2 console.log(bar);
3 
4 var foo=2;//undefined
5 let bar=3;//Uncaught ReferenceError: bar is not defined

3.只要当前块级作用域内存在let命令,它所声明的变量就绑定了这个块级作用域,不再受外部的影响

1 var tmp=123;
2 if(true){
3   tmp=‘abc‘;//Uncaught ReferenceError: tmp is not defined,因为块级作用域内存在let命令声明的相同变量,违反了let命令先声明后使用原则
4   let tmp;
5 }

4.let命令不允许在同一个作用域内,重复声明同一个变量

1 function foo(){
2   let a=10;
3   let a=1;//Uncaught SyntaxError: Identifier ‘a‘ has already been declared
4 }

 

ES6中的let命令