ES6中的const命令
一、
1)const声明一个只读的常量。一旦声明,敞亮的值就不能改变。


2)const声明的变量不得改变值
这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。
const只声明不赋值,就会报错。


3)const的作用域与let命令相同:只在声明所在的块级作用域内有效。


4)const命令声明的常量也提升(声明提前),同样存在暂时性死区,只能在声明的位置后面使用

5)const声明的常量,和let一样不可重复声明


补充:
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
对于简单类型的数据(number,string,boolean),值就保存在变量指向的那个内存地址,因此等同于常量。
但对于复合类型的数据(主要是数组和对象),变量指向的内存地址,保存的只是一个指向实际数据的指针,const
只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。
因此,将一个对象声明为常量必须非常小心。

如果要冻结一个对象,要如下:

浙公网安备 33010602011771号