1.let命令的用法和var命令類似,但let命令聲明的變數只在let所在的代碼塊內有效 2.let命令不存“聲明提前”現象,因此變數一定要先聲明,後使用 3.只要當前塊級作用域記憶體在let命令,它所聲明的變數就綁定了這個塊級作用域,不再受外部的影響 4.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 }