不存在变量提升
var
命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined
。
let
命令不存在变量提升的行为,它所声明的变量一定要在声明后使用,否则报错。
例:
暂时性死区
只要块级作用域内存在let
命令声明变量之前,该变量都是不可用的。
这在语法上,称为“暂时性死区” temporal dead zone,简称 TDZ。
例:
有些“死区”比较隐蔽
var
命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined
。
let
命令不存在变量提升的行为,它所声明的变量一定要在声明后使用,否则报错。
例:
只要块级作用域内存在let
命令声明变量之前,该变量都是不可用的。
这在语法上,称为“暂时性死区” temporal dead zone,简称 TDZ。
例:
有些“死区”比较隐蔽