我们都知道,const是用来定义常量的。
既然是常量,那就不可以修改。(如果可以被修改,那不就成了“变量”了吗?)
但是大家可以在控制台试验一下如下代码,这是不会报错的:
const person = { name: 'Andy', sex: '男' } person.name = 'Dan' // 没有报错 console.log(person.name) // Dan
为什么person可以被修改呢?这不矛盾吗?
我来解释一下为什么:
其实person中保存的并不是对象,而是“对象的指针”。用const来声明person对象,只可以保证这个对象的指针不变,对象的属性是可以随意修改的。
因为我们修改对象属性的时候,指针是不会变的。