乐趣区

关于javascript:const命令与顶层对象

根本用法

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

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

const 作用域与 let 雷同:

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

实质

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

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

 

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

 

顶层对象

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

退出移动版