当前位置:首页>javascript>ECScript 6 杂篇

ECScript 6 杂篇

2018-01-09 3471 javascript
let 不允许重声明。当 let 声明 a 时,再次声明将导致重复声明错误 Uncaught SyntaxError: Identifier '' has already been declared 错误的
  1. (function ts(){
  2. let a = 111;
  3. let a = 222;
  4. console.log(a);// Uncaught SyntaxError: Identifier 'a' has already been declared
  5. })();
同样的,由于 let 是块级作用,var 是全局作用,会导致提权问题。在函数作用于内,如果 let 声明了,在内部用 var 将同样导致 导致重复声明错误 Uncaught SyntaxError: Identifier '' has already been declared 错误的
  1. (function ts(){
  2. let a = 111;
  3. if (true) {
  4. var a = 222;
  5. }
  6. console.log(a); //Uncaught SyntaxError: Identifier 'a' has already been declared
  7. })();
改用 let 在子级块中,将不会导致这个错误。 正确的
  1. (function ts(){
  2. let a = 111;
  3. if (true) {
  4. let a = 222;
  5. }
  6. console.log(a); // 111
  7. })();
  未完待续    

评论 (0)