ES6+ let和const
1.let和const
(1)支持块级作用域,块级作用域必须用{}包裹。
(2)不允许在相同作用域内重复声明变量。
(2)不存在变量提升。
(3)暂时性死区(temporal dead zone,简称TDZ):在 let 和const命令声明变量之前区域,该变量都是不可用的,该区域称为‘暂时性死区’。
注意:let和const的出现使得typeof不再百分百安全。对于一个未声明的变量,typeof的结果是undefined,但对于死区中的变量typeof结果为ReferenceError。
2.const
(1)const声明一个只读的常量,一旦声明,常量的值就不能改变。
(2)const一旦声明变量,就必须立即初始化。
(3)const只是保证总指向一个固定的内存地址。