【JS】const 声明对象或者数组可以改变吗
const 声明对象或者数组可以改变吗
tina666发布于 2 月 2 日
今天逛帖子,突然遇到这个问题,我第一反应是不能改变,如果要改变,为什么还用const定义,然后在浏览器控制台试试结果。
耶,这是什么操作啊, 然后在时候定义一个基本类型,确实是预料中的结果
那为什么const 定义的对象和数组可以改变它的值呢?
因为对象和数组是引用类型,a中保存的仅是数组的指针,这就意味着,const仅保证指针不发生改变,修改数组的值不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。
我们试着修改一下指针,让a指向一个新数组,结果如下图:
即使对象的内容没发生改变,指针改变也是不允许的。
好了,算爬出了一个坑,记录下
面试javascript
阅读 54发布于 2 月 2 日
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
tina666
别回头,别人随时有可能赶上你
123 声望
3 粉丝
tina666
别回头,别人随时有可能赶上你
123 声望
3 粉丝
宣传栏
目录
今天逛帖子,突然遇到这个问题,我第一反应是不能改变,如果要改变,为什么还用const定义,然后在浏览器控制台试试结果。
耶,这是什么操作啊, 然后在时候定义一个基本类型,确实是预料中的结果
那为什么const 定义的对象和数组可以改变它的值呢?
因为对象和数组是引用类型,a中保存的仅是数组的指针,这就意味着,const仅保证指针不发生改变,修改数组的值不会改变对象的指针,所以是被允许的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是允许的。
我们试着修改一下指针,让a指向一个新数组,结果如下图:
即使对象的内容没发生改变,指针改变也是不允许的。
好了,算爬出了一个坑,记录下
以上是 【JS】const 声明对象或者数组可以改变吗 的全部内容, 来源链接: utcz.com/a/112981.html
得票时间