let 和 const 的举动
ES6引入了let和const作为新的变量声明方式,它们的计划初志之一就是为了办理var带来的作用域和变量提升方面的题目。与var差别,let和const声明的变量不会被提升到其作用域的顶部,而且它们遵照所谓的“临时性死区”(Temporal Dead Zone, TDZ)规则。
在“临时性死区”内,任何对let或const变量的访问都会抛出一个ReferenceError错误,直到变量被现实声明为止。
console.log(y); // 抛出 ReferenceError: y is not defined
let y = 10;
console.log(z); // 抛出 ReferenceError: z is not defined