ES6 暂时性死区

   在ES6中,声明变量新增了两个关键字:let命令和const命令


如果在区块中存在let或者const命令时,任何变量都必须在声明之前使用,无论是区块外部的全局变量或者是区块内部的变量:

1 /* 区块外部的全局变量在区块内也必须先声明*/
2 
3 var tem;
4 
5 if(true){
6   tem="A"   //此时会出现报错,
7 }

另外一种是区块内部的变量,也必须在声明后使用:

if(true){
  tem="A";    //报错,ReferenceError
  let tem;      
}

最后,暂时性死区对于typeof造成的影响

1 typeof x;   //ReferenceError
2 let x;
3   
4   /*而在不使用let时,typeof运算符还是无敌的,不会出现报错*/
5 
6 typeof y;  //undefined

 

posted @ 2016-12-22 14:07  Java_Panda  阅读(199)  评论(0编辑  收藏  举报