Open bibi7 opened 5 years ago
比较简单,稍微提一下
console.log(a); //Uncaught ReferenceError: Cannot access 'a' before initialization const a = 1;
不同于var的变量提升,es6中,let和const声明的变量会存在暂时性死区,也叫TDZ(Temporal Dead Zone)。
let
const
来读读规范:
The variables are created when their containing Lexical Environment is instantiated but may not be accessed in any way until the variable’s LexicalBinding is evaluated.
变量总是会在包含他的词法环境在被实例化的时候第一时间创建出来,但是在词法绑定之前,任何方式都无法访问该变量。(总感觉这么翻译不是很契合
程序控制流程进入新作用域创建变量,到变量可以被访问的这一段持续时间内,即暂时性死区
17 接上文,顺便讲讲暂时性死区。
比较简单,稍微提一下
不同于var的变量提升,es6中,
let
和const
声明的变量会存在暂时性死区,也叫TDZ(Temporal Dead Zone)。来读读规范:
变量总是会在包含他的词法环境在被实例化的时候第一时间创建出来,但是在词法绑定之前,任何方式都无法访问该变量。(总感觉这么翻译不是很契合
程序控制流程进入新作用域创建变量,到变量可以被访问的这一段持续时间内,即暂时性死区