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

碰到这个问题我第一反应是肯定不能改变,如果要改变值的话,用const定义干嘛,然后不信邪在浏览器控制台试试结果。
卧槽!
在这里插入图片描述
但是定义一个基本类型,确实改不了
在这里插入图片描述
那为什么const 定义的对象和数组可以改变它的值呢?
我来为大家解释一下。

都知道对象和数组是引用类型,const声明的a中保存的仅是数组和对象的指针,这就是说const仅保证指针不发生改变,修改数组的值不会改变对象的指针,所以是可以改的的。也就是说const定义的引用类型只要指针不发生改变,其他的不论如何改变都是可以的。

我们试着修改一下指针,让a指向一个新数组,结果如下图:
在这里插入图片描述
我再试一下重新赋值,结果也是一样,说明即使值没发生改变,指针改变也是不允许的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值