在 JavaScript 中,const
关键字用于声明一个只读的常量,一旦被赋值,就不能再重新赋值。
const
声明的变量具有块级作用域,意味着其作用范围限定在声明它的块(通常是花括号 {}
)内。如果尝试在同一作用域内重新赋值 const
声明的变量,将会引发错误。
const x = 10; // x = 20; // 这行代码会引发错误,因为 x 是常量,不能重新赋值 if (true) { const y = 5; // y = 8; // 这行代码也会引发错误,因为 y 是常量,不能重新赋值 } // console.log(y); // 这行代码会引发错误,因为 y 在其声明的块之外,超出了作用范围
但需要注意的是,对于对象或数组等复杂数据类型,const
仅保证变量引用不变,而不是对象本身的不变性。
对象的 const
示例:
const person = {
name: ‘John’,
age: 30
};
// 可以修改对象的属性
person.age = 31;
// 但不能重新赋予新的引用
// person = {}; // 这行代码会引发错误
console.log(person); // { name: ‘John’, age: 31 }
数组的 const
示例:
const numbers = [1, 2, 3];
// 可以修改数组的元素
numbers[0] = 10;
// 但不能重新赋予新的引用
// numbers = []; // 这行代码会引发错误
console.log(numbers); // [10, 2, 3]
在这两个示例中,const
保证了变量 person
和 numbers
的引用不变,所以不能重新为它们赋予新的对象或数组。然而,可以修改对象的属性或数组的元素,因为这并没有改变变量的引用。