根本用法
const申明一个只读常量,一旦申明,不可扭转
const一旦申明常量,就必须立刻初始化,不能当前赋值
const作用域与let雷同:
- 只在申明所在的块级作用域内无效.
- 同样的也不存在变量晋升.存在暂时性死区
- 只能在申明后应用
- 不可反复申明
实质
const保障的不是是变量的值不能改变,而是变量指向的内存地址不得改变,因而这也就意味着对于复合数据类型而言外面的数据结构是可变的,见代码:
如果想让对象解冻,应该应用Object.freeze办法,见代码:
除了将对象解冻,对象的属性也应该解冻,对象彻底解冻形式见代码:
顶层对象
let命令,const命令,class命令申明的变量不属于顶层对象属性,见代码: