let 和 const 命令
1、 let 命令
-
let用来声明变量, 只在let命令所在的代码块内有效。
-
ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
-
“暂时性死区”也意味着typeof不再是一个百分之百安全的操作。
-
在没有let之前,typeof运算符是百分之百安全的,永远不会报错。
-
变量一定要在声明之后使用,否则就报错。
-
ES6 规定暂时性死区和let、const语句不出现变量提升,主要是为了减少运行时错误,防止在变量声明前就使用这个变量,从而导致意料之外的行为。这样的错误在 ES5 是很常见的,现在有了这种规定,避免此类错误就很容易了。
-
总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。
-
let不允许在相同作用域内,重复声明同一个变量。
2、 const 命令
-
const声明一个只读的常量。一旦声明,常量的值就不能改变。
-
const的作用域与let命令相同:只在声明所在的块级作用域内有效。
-
const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
-
const声明的常量,也与let一样不可重复声明。
-
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。

浙公网安备 33010602011771号