Js实现const
在 JavaScript 中,const 是用于声明常量的关键字,其值在声明后不能被重新赋值。以下是关于 const 的详细说明和用法:
基本语法
const identifier = value;
identifier是常量名称,遵循变量命名规则。value是初始值,声明时必须赋值,否则会报错。
特性
-
不可重新赋值
const声明的常量不能被重新赋值,否则会抛出TypeError。const PI = 3.14; PI = 3.14159; // 报错:Assignment to constant variable -
块级作用域
const与let类似,具有块级作用域(仅在{}内有效)。if (true) { const x = 10; } console.log(x); // 报错:x is not defined -
必须初始化
声明时必须赋值,否则会报语法错误。const x; // 报错:Missing initializer in const declaration -
不提升变量
const声明的常量不会提升,存在暂时性死区(TDZ)。
注意事项
-
对象和数组的可变性
const仅保证标识符不可重新赋值,但对象或数组的内容可以修改。const arr = [1, 2]; arr.push(3); // 允许 arr = [4, 5]; // 报错 const obj = { name: "Alice" }; obj.age = 30; // 允许 obj = {}; // 报错 -
冻结对象
如需完全不可变,可使用Object.freeze():const obj = Object.freeze({ name: "Alice" }); obj.age = 30; // 静默失败(严格模式下报错)
使用场景
- 声明不会改变的常量(如配置值、数学常量)。
- 引用类型需保持引用不变时(如 React 组件 props)。
与 let 和 var 对比
| 关键字 | 作用域 | 可重新赋值 | 提升 | 需初始化 |
|---|---|---|---|---|
var |
函数作用域 | 是 | 是 | 否 |
let |
块级作用域 | 是 | 否 | 否 |
const |
块级作用域 | 否 | 否 | 是 |
通过合理使用 const,可以提升代码的可读性和安全性。






