乐趣区

暂时性死区

在使用 let/const 定义变量时,一开始就会形成封闭作用域,在声明变量之前是无法使用该变量的。这个特点是为了弥补 var 的缺陷。

if(true){
    name =‘123’name is not defined
    let name =‘456’}

解析原理:

 其实 let/cosnt 和 var 一样都会有提升的效果,不同的是:
  • var 在创建时就会被初始化,赋值为 undefined

  • let/const 在进入到块级作用域时,因为提升的原因会先被创建,但不会被初始化。直到使用 let/const 定义时,才会被初始化。let 初始化没有赋值会被默认 undefined;const 在初始化时必须赋值。创建到初始化的代码块就是暂时性死区。
退出移动版