【const怎么用】在JavaScript中,`const` 是一个用于声明常量的关键字,它与 `let` 和 `var` 一样,都是用来声明变量的,但它的行为和用途有所不同。掌握 `const` 的正确使用方式,有助于编写更清晰、更安全的代码。
一、const的基本用法
`const` 声明的变量具有以下特点:
- 不可重新赋值:一旦声明并初始化,就不能再被修改。
- 块级作用域:与 `let` 类似,`const` 声明的变量只在当前代码块内有效。
- 必须初始化:声明时必须赋予初始值,不能只声明不赋值。
```javascript
const PI = 3.14159;
PI = 3.14; // 报错:Assignment to constant variable.
```
二、const与对象和数组的处理
虽然 `const` 声明的变量不能被重新赋值,但如果变量是一个对象或数组,其内部属性是可以被修改的。
```javascript
const obj = { name: "Alice" };
obj.name = "Bob"; // 允许
console.log(obj); // { name: "Bob" }
const arr = [1, 2, 3];
arr.push(4); // 允许
console.log(arr); // [1, 2, 3, 4
```
如果希望整个对象或数组都不能被修改,可以使用 `Object.freeze()`。
```javascript
const obj = Object.freeze({ name: "Alice" });
obj.name = "Bob"; // 不允许
```
三、const的适用场景
| 场景 | 说明 |
| 固定值 | 如数学常数、配置项等 |
| 函数参数 | 防止函数内部修改参数值 |
| 模块导出 | 保证模块导出内容不变 |
| 循环中的变量 | 在循环中使用 `const` 可以避免意外修改 |
四、const vs let vs var
| 特性 | const | let | var |
| 作用域 | 块级 | 块级 | 函数级 |
| 是否可重新赋值 | 否 | 是 | 是 |
| 是否必须初始化 | 是 | 否 | 否 |
| 是否可提升 | 否 | 否 | 是 |
五、常见错误与注意事项
1. 忘记初始化
```javascript
const x; // 错误:缺少初始值
```
2. 试图重新赋值
```javascript
const y = 10;
y = 20; // 错误:Assignment to constant variable.
```
3. 对象或数组的引用问题
```javascript
const arr = [1, 2];
arr = [3, 4]; // 错误:Assignment to constant variable.
```
总结
`const` 是 JavaScript 中非常重要的关键字,合理使用它可以提高代码的可读性和安全性。理解其作用域、不可变性以及与对象/数组的关系,是掌握 JavaScript 编程的基础之一。在实际开发中,建议优先使用 `const`,只有在需要重新赋值时才使用 `let`,而 `var` 则尽量避免使用。
| 关键词 | 是否可重新赋值 | 作用域 | 是否必须初始化 |
| `const` | ❌ | 块级 | ✅ |
| `let` | ✅ | 块级 | ❌ |
| `var` | ✅ | 函数级 | ❌ |


