今天逛帖子,突然遇到这个问题,我第一反应是不能改变,如果要改变,为什么还用const定义,然后在浏览器控制台试试结果。
image.png

耶,这是什么操作啊, 然后在时候定义一个基本类型,确实是预料中的结果
image.png

那为什么const 定义的对象和数组可以改变它的值呢?

因为对象和数组是引用类型,a中保存的仅是数组的指针,这就意味着,const仅保证指针不发生改变,修改数组的值不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。

我们试着修改一下指针,让a指向一个新数组,结果如下图:
image.png

即使对象的内容没发生改变,指针改变也是不允许的。
image.png

好了,算爬出了一个坑,记录下


tina666
392 声望7 粉丝

别回头,别人随时有可能赶上你