根本用法

const申明一个只读常量,一旦申明,不可扭转

const一旦申明常量,就必须立刻初始化,不能当前赋值

const作用域与let雷同:

  • 只在申明所在的块级作用域内无效.
  • 同样的也不存在变量晋升.存在暂时性死区
  • 只能在申明后应用
  • 不可反复申明

实质

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

如果想让对象解冻,应该应用Object.freeze办法,见代码:

 

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

 

顶层对象

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