基本用法

const声明一个只读常量,一旦声明,不可改变

const一旦声明常量,就必须立即初始化,不能以后赋值

const作用域与let相同:

  • 只在声明所在的块级作用域内有效.
  • 同样的也不存在变量提升.存在暂时性死区
  • 只能在声明后使用
  • 不可重复声明

本质

const保证的不是是变量的值不能改动,而是变量指向的内存地址不得改动,因此这也就意味着对于复合数据类型而言里面的数据结构是可变的,见代码:

如果想让对象冻结,应该使用Object.freeze方法,见代码:

 

除了将对象冻结,对象的属性也应该冻结,对象彻底冻结方式见代码:

 

顶层对象

let命令,const命令,class命令声明的变量不属于顶层对象属性,见代码:


玛拉_以琳
8.7k 声望6.2k 粉丝