在JavaScript中,常量是指在定義時就被賦值且不可被重新賦值的變量。常量使用關鍵字const來定義。與var和let不同,const聲明的變量不可被重新賦值,這使得它非常適合用來定義不變的值,如數字常量、常量數組或常量對象。
下面是一個簡單的例子,它展示了如何在JavaScript中使用const來定義數字常量:
const PI = 3.14159; console.log(PI); //3.14159 PI = 5; //TypeError: Assignment to constant variable.在這個例子中,我們定義了一個名為PI的常量,并嘗試將新的值5賦給它。由于PI是一個常量,這個賦值操作將導致TypeError錯誤。這說明常量在定義后無法被重新賦值。
除了數字常量,我們還可以使用const來定義常量數組和常量對象:
const COLORS = ['red', 'green', 'blue']; console.log(COLORS[0]); //red COLORS.push('yellow'); //可以成功修改數組 console.log(COLORS); //['red', 'green', 'blue', 'yellow'] const PERSON = {name: 'Tom', age: 20}; console.log(PERSON.name); //Tom PERSON.name = 'John'; //可以成功修改對象屬性 console.log(PERSON.name); //John PERSON = {name: 'Kate', age: 25}; //TypeError: Assignment to constant variable.在這些例子中,我們定義了一個常量數組COLORS和一個常量對象PERSON。雖然我們可以修改這些數據的內容,但是我們不能將新的值賦給他們。
在ES6中,const定義的常量與let定義的變量在作用域上有一些相似之處:
if (true) { const a = 1; let b = 2; } console.log(a); //ReferenceError: a is not defined console.log(b); //ReferenceError: b is not defined在這個例子中,我們在一個if語句塊中定義了const常量a和let變量b。由于這兩個變量在if語句塊中定義,它們的作用域僅局限于該語句塊。因此,如果我們嘗試在語句塊之外訪問這些變量,會產生ReferenceError錯誤。
總結一下,const關鍵字可以用來定義常量。在定義后,常量的值無法被重新賦值。但是,它們的內容可以被修改。const常量在作用域上的表現與let變量相似。我們可以使用const來定義數字常量,常量數組和常量對象。