# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。