您的当前位置:首页正文

1.let和const

来源:花图问答

let:声明变量

const:声明只读常量

二者共同点:

  • 只在代码块内有效,并且在用let或const声明之前,都是TDZ(temporal dead zone),暂时性死区,会报错
  • 没有变量提升
  • 不允许重复声明

这使得ES6存在块级作用域,私有作用域的语法可以丢弃了,允许在块级作用域中声明函数,但是环境导致的行为差异大,所以尽量避免。

const:

  • const定义对象,保存的地址不可变,但地址的内容可变,所以可给对象添加方法、属性。

  • 若想将对象冻结,使用Object.freeze({});

  • 全局对象的属性:var命令和function命令声明的全局变量,依旧是全局对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于全局对象的属性。