在 JavaScript 中,使用 const 声明的变量如果是常量,它的值在声明后就不能被改变了,否则会抛出 TypeError 错误。但是需要注意的是,使用 const 声明的变量并不是不可变的,而是它们的值不可变。如果 const 变量的值是一个对象或数组,那么该对象或数组的属性和元素是可以被修改的,只要不改变变量本身的值即可。
例如:
const object = {a: 111, b: 222};
object.a = 333; // 可以修改对象的属性
console.log(object); // 输出 {a: 333, b: 2}
const array = [111, 222, 333];
array[0] = 444; // 可以修改数组的元素
console.log(array); // 输出 [444, 2, 3]
因此,虽然使用 const 声明的变量不能被重新赋值,但是它们并不是完全不可变的,还是可以通过改变它们的属性和元素来实现一些修改。如果想要完全不可变的变量,可以使用其他的方式,例如使用 Object.freeze() 方法来冻结对象。
参考: https://blog.youkuaiyun.com/m0_54566205/article/details/129674415