声明一个常量
特点:
他的特点与let类似
1.块级作用域
2.不能在同一块内重复声明
3.暂时性死区
4.变量不提升、
5.在全局下声明的全局对象不再是window顶层对象的属性了。
6.支持解构赋值。
7.变量定义后不可改变:
这里的不可改变指的是不可改变const存的变量的指针。
简单数据类型存在于栈内存,指针直接指向值所以不可改变。
复杂数据类型存在于堆内存,变量存的是引用地址,所以可以改变该复杂类型的变量的值,但是却不能改变该变量的引用地址。
例如:
const a=[];
a.push('Hello');// 可执行
a.length=0;// 可执行
a=['Dave'];// 报错