ECScript 6 杂篇

当前位置: 首页 » 记录 » javascript » ECScript 6 杂篇

分类: javascript 1,143阅读阅读模式

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. })();

 

未完待续

 

 

相关文章

评论一下

【注意1】:首次评论使用表情将会进入审核状态。
【注意2】:无意义回复、乱打文字内容将会进入审核状态。
【注意3】:涉及辱骂、色情、政治、毒品、赌博内容将会进入审核状态。
【注意】:首次评论使用表情将会进入审核状态。
暂无评论