JavaScript Const的基础使用
JavaScript 中的 const
关键字
const
是 JavaScript 中用于声明常量的关键字,其核心特性是:
不可重新赋值
声明后变量的引用不可更改:const PI = 3.14; PI = 3.14159; // 报错:Assignment to constant variable
块级作用域
与let
类似,仅在当前代码块内有效:{const message = "Hello";console.log(message); // 输出 "Hello" } console.log(message); // 报错:message is not defined
必须初始化
声明时必须赋值,否则报错:const name; // 报错:Missing initializer in const declaration
关键注意事项
对象和数组的可变性
const
仅阻止变量被重新赋值,但对象或数组的内容可修改:const user = { name: "Alice" }; user.name = "Bob"; // 允许修改属性 user = { name: "Charlie" }; // 报错:重新赋值被禁止const nums = [1, 2, 3]; nums.push(4); // 允许修改数组
与
var
和let
的区别特性 const
let
var
重新赋值 ❌ 禁止 ✅ 允许 ✅ 允许 作用域 块级作用域 块级作用域 函数作用域 变量提升 不提升 不提升 ✅ 提升(初始化为 undefined
)重复声明 ❌ 禁止 ❌ 禁止 ✅ 允许(覆盖)
最佳实践
- 默认使用
const
优先用const
声明变量,仅在需要重新赋值时改用let
,避免使用var
。 - 命名规范
常量通常使用全大写 + 下划线命名(如MAX_SIZE
),提高可读性。 - 冻结对象
若需完全不可变对象,可使用Object.freeze()
:const config = Object.freeze({ key: "secret" }); config.key = "new"; // 静默失败(严格模式下报错)
通过合理使用 const
,可提升代码稳定性和可维护性,减少意外赋值导致的错误。
在 JavaScript 中,const
是用于声明常量的关键字,具有以下特点和行为:
声明与初始化
const
声明的变量必须在声明时立即初始化,且不能重新赋值。例如:
const PI = 3.14159; // 正确
const MAX_SIZE; // 错误:未初始化
块级作用域
const
与 let
类似,具有块级作用域(仅限于 {}
内):
if (true) {const x = 10;console.log(x); // 输出 10
}
console.log(x); // 报错:x 未定义
对象和数组的可变性
对于引用类型(如对象或数组),const
仅保证变量引用的地址不变,但内容可以修改:
const person = { name: "Alice" };
person.name = "Bob"; // 允许修改属性
person = {}; // 报错:重新赋值const nums = [1, 2, 3];
nums.push(4); // 允许修改数组
nums = [5, 6]; // 报错:重新赋值
暂时性死区
与 let
类似,const
存在暂时性死区(TDZ),声明前访问会报错:
console.log(x); // 报错:Cannot access 'x' before initialization
const x = 10;
命名规范
通常使用全大写字母和下划线命名常量(如 MAX_SIZE
),但非强制要求。
使用场景
- 需要保护变量不被重新赋值时(如配置项、数学常量)。
- 引用类型需要保持引用稳定但内容可变时。