您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# JavaScript中常量指的是什么意思
## 1. 常量的基本概念
在JavaScript中,常量(Constant)是指**声明后其值不能被重新赋值**的标识符。与变量不同,常量的值在初始化后便保持固定,任何试图修改的操作都会导致错误。
### 1.1 常量的声明方式
使用`const`关键字声明常量:
```javascript
const PI = 3.14159;
let
/var
:可重新赋值const
:不可重新赋值(但对象/数组内部属性可修改)常量声明时必须赋值:
const URL; // 报错:Missing initializer
与let
类似,常量具有块级作用域:
{
const MAX = 100;
}
console.log(MAX); // 报错:MAX未定义
在声明前访问会触发引用错误:
console.log(VERSION); // 报错
const VERSION = '1.0';
对于原始值(字符串、数字等):
const NAME = "Alice";
NAME = "Bob"; // TypeError: Assignment to constant
对于对象/数组:
const user = { name: "John" };
user.name = "Mike"; // 允许修改属性
user = {}; // 报错:不能重新赋值
const API_KEY = "abc123";
const apiKey = "abc123";
推荐使用有明确含义的名称:
const MAX_RETRY_TIMES = 3; // 优于 const MRT = 3
const CONFIG = {
API_ENDPOINT: "https://api.example.com",
TIMEOUT: 5000
};
const GOLDEN_RATIO = 1.618;
const STATUS_CODE = {
OK: 200,
NOT_FOUND: 404
};
实现真正不可变:
const COLORS = Object.freeze(['red', 'green']);
COLORS.push('blue'); // 严格模式下报错
递归冻结嵌套对象:
function deepFreeze(obj) {
Object.freeze(obj);
Object.keys(obj).forEach(key => {
if (typeof obj[key] === 'object') deepFreeze(obj[key]);
});
}
实际上const只保证标识符绑定不变,不保证值本身不可变。
for (const i = 0; i < 5; i++) { ... } // 报错
// 正确用法:
for (const item of array) { ... }
JavaScript中的常量是通过const
声明的不可重新赋值的标识符,它:
- 提高了代码可读性和可维护性
- 防止意外重写重要数据
- 需要区分值不可变和引用不可变的差异
- 是现代JavaScript开发的推荐实践
“`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。