之前讲了一下let,声明一个变量,只在块级作用域有作用。现在来说一下ES6新增的另一个关键字const
const是声明常量的,常量的值是不可改变的。
使用的时候有以下特点:
- 不可修改
- 只在块级作用域起作用
- 不存在变量提升
- 不可重复声明变量
- 声明后必须赋值
上边声明的常量都是一些基础类型的数据,如果声明的常量是一个对象呢会发生什么
是不是发现对象里的键值被改变了,不是说好的不可以变化么,其实原因是:不可改变的引用类型数据的地址不可改变
如果给它赋新值就会报错,相当于更改他的地址,如果你使用delete删除键值,然后再使用obj.c=5是可以更改的
是不是很有意思