let 和 const 命令

1、 let 命令

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

2、 const 命令

  1. const声明一个只读的常量。一旦声明,常量的值就不能改变。
  2. const的作用域与let命令相同:只在声明所在的块级作用域内有效。
  3. const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。
  4. const声明的常量,也与let一样不可重复声明。
  5. const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
posted @ 2021-07-08 17:13  夜未央唐汉  阅读(104)  评论(1)    收藏  举报