js const实现
const 的基本概念
在 JavaScript 中,const 用于声明一个常量,其值在初始化后不能被重新赋值。const 声明的变量具有块级作用域,类似于 let。
const 的特性
const 声明的变量必须在声明时初始化,否则会报错。尝试重新赋值会导致 TypeError。
const PI = 3.14159;
PI = 3.14; // TypeError: Assignment to constant variable.
const 与对象和数组
虽然 const 声明的变量不能被重新赋值,但如果变量是对象或数组,其属性或元素可以被修改。
const person = { name: 'Alice' };
person.name = 'Bob'; // 允许修改属性
person = {}; // TypeError: Assignment to constant variable.
const numbers = [1, 2, 3];
numbers.push(4); // 允许修改数组
numbers = []; // TypeError: Assignment to constant variable.
const 的作用域
const 声明的变量具有块级作用域,只在声明它的块或子块中有效。
if (true) {
const message = 'Hello';
console.log(message); // 'Hello'
}
console.log(message); // ReferenceError: message is not defined
const 与循环
在循环中使用 const 时,每次迭代都会创建一个新的块级作用域,因此可以安全地在循环中使用。

for (const i = 0; i < 5; i++) {
// 报错,因为 i 不能被重新赋值
}
for (const item of [1, 2, 3]) {
console.log(item); // 1, 2, 3
}
const 的最佳实践
- 优先使用
const而不是let或var,除非需要重新赋值。 - 使用
const可以避免意外的变量重新赋值,提高代码的可维护性。 - 对于不会改变的引用类型(如对象或数组),使用
const可以确保引用不变,但内部状态仍可修改。
const 的注意事项
const不保证变量的值不可变,只是变量名不能被重新赋值。- 如果需要完全不可变的对象,可以使用
Object.freeze()或其他不可变库。






