在ES6中,声明变量新增了两个关键字:let命令和const命令
如果在区块中存在let或者const命令时,任何变量都必须在声明之前使用,无论是区块外部的全局变量或者是区块内部的变量:
/* 区块外部的全局变量在区块内也必须先声明*/ var tem; if(true){
tem="A" //此时会出现报错,
}
另外一种是区块内部的变量,也必须在声明后使用:
if(true){
tem="A"; //报错,ReferenceError
let tem;
}
最后,暂时性死区对于typeof造成的影响
typeof x; //ReferenceError
let x; /*而在不使用let时,typeof运算符还是无敌的,不会出现报错*/ typeof y; //undefined