可以。使用 const 声明的数组变量是一个常量引用,指向堆内存中的同一个数组对象,因此你可以直接调用该对象的 push() 方法来修改其内容。

const 声明的数组能 push 吗
可以。使用 const 声明的数组变量是一个常量引用,指向堆内存中的同一个数组对象,因此你可以直接调用该对象的 push() 方法来修改其内容。

const arr = [1, 2]; arr.push(3); console.log(arr); // [1, 2, 3]
为什么 const 允许修改数组内容
因为 const 保证的是绑定关系(Binding)不可变,而不是值(Value)不可变。对于基本类型,const 确实锁死了值;但对于数组这种引用类型,它锁死的是栈上的指针地址。只要不改变这个指针指向新的数组,原数组内部的状态就可以随意变更。

const arr = [1, 2]; arr[0] = 99; // arr 依然指向原来的内存地址,只是内容变了
如果尝试重新赋值会发生什么
如果你试图将一个新的数组赋值给这个 const 变量,就会触发 TypeError。这验证了 const 的核心限制在于“引用”而非“内容”。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











