为了账号安全,请及时绑定邮箱和手机立即绑定

为什么splice() push()等方法可以修改const声明的常量?

为什么splice() push()等方法可以修改const声明的常量?

慕标5832272 2019-03-01 16:58:44
举个栗子:const arr = ['吃饭','睡觉','喝水'] arr.splice(2,1)console.log(arr)输出:['吃饭','睡觉']再个栗子:const arr = ['吃饭','睡觉','喝水'] arr.push('盘他')console.log(arr)输出:['吃饭','睡觉','喝水','盘他']而这样修改就会报错:const arr = ['吃饭','睡觉','喝水'] arr = ['吃饭','睡觉','喝水','吃鸡']console.log(arr)输出:error这是为什么呢?
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

const声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。例如,在引用内容是对象的情况下,这意味着可以改变对象的内容(例如,其参数)。

const


查看完整回答
反对 回复 2019-03-01
?
手掌心

TA贡献1942条经验 获得超3个赞

因为const声明的时候,不能改变的是这个变量在内存中的指针。数组和对象是引用类型。splice和push并不会改变该数组在内存中的地址引用,所以不会报错

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 2616 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信