如何在 JavaScript 中使用 'const' 關鍵字?


我們在 JavaScript 中使用const關鍵字來宣告變數,這些變數的值只能在宣告時初始化。它與 JavaScript 中提供的其他關鍵字(即varlet)宣告變數的功能類似。const 是常量的縮寫,表示儲存在變數中的值是不可更改的。

JavaScript 中的 const 關鍵字

它用於在 JavaScript 中宣告變數。使用 const 建立的變數遵循某些規則。

  • 該變數是塊級作用域的。這意味著變數的作用域(生命週期)取決於其宣告的位置。這遵循與let關鍵字相同的規則。

  • const 變數的值只能在宣告時提供。這是因為一旦宣告,儲存在 const 變數中的值就不能更改。

  • 但是,使用 const 關鍵字宣告的陣列或物件可以修改。

  • 任何嘗試在初始化之前修改或訪問 const 變數都會導致引用錯誤。如果宣告行尚未執行,則該變數被稱為處於暫時死區 (TDZ)。此行為不同於 var 關鍵字。

const 關鍵字對變數持有隻讀許可權。這意味著,在底層,變數而不是儲存在該變數中的值被限制為不能更改。任何嘗試寫入變數都會因變數沒有寫入許可權而引發錯誤。

語法

const NUM = 10;

這會建立一個值為 10 的常量變數NUM注意,使用大寫字母編寫 const 變數是一種常見約定。這樣做是為了強調該變數是常量,不應修改。

讓我們看一個 const 關鍵字的工作示例。

示例 1

在這裡,我們將建立一個 const 變數,然後嘗試更改其值。這將丟擲一個“對常量變數的賦值”錯誤,我們將使用 try-catch 塊來處理該錯誤。

讓我們看看程式碼:

<!DOCTYPE html> <html> <body> <div id="result"></div> </body> <script> const NUM = 10; var text = ""; for (let NUM = 0; NUM < 10; NUM++) { text += NUM + ","; } text += "<br>" try { NUM = 20; } catch (err) { text += err.message; } document.getElementById("result").innerHTML = text; </script> </html>

在上面的程式碼中,有兩件事需要注意。一個是 const 變數的塊級作用域特性。這讓我們可以使用相同的名稱 NUM 定義另一個變數,而不會發生衝突。這是因為 let 建立塊級作用域變數。因此,for 迴圈內部的 NUM 是一個非 const 變數,其識別符號名稱與 const 變數相同。迴圈內部建立的 NUM 與全域性作用域的 const 變數獨立工作,因為它是宣告在每個塊之外的。

需要注意的第二件事是當我們嘗試重新初始化 const 變數 NUM 的值時丟擲的錯誤。這符合 const 的工作方式。

注意,如果我們嘗試使用 var 關鍵字宣告一個與 const 變數名稱相同的變數,則會丟擲錯誤,因為使用 var 關鍵字宣告的變數具有全域性作用域,這會導致衝突。

另外注意,如果我們嘗試宣告一個變數而不初始化它,則會丟擲一個“const 宣告中缺少初始化程式”錯誤。

const 關鍵字通常用於宣告陣列和物件。這是因為它不允許重新分配物件變數,但同時允許靈活地修改物件的屬性。

以下是如何在 JavaScript 中使用 const 關鍵字與物件的示例。

示例 2

在這裡,我們將使用 const 關鍵字建立一個具有兩個屬性 name 和 age 的物件。然後,我們嘗試修改 age 屬性。這將正常工作,因為我們正在處理物件而不是原始變數。讓我們看看程式碼:

<!DOCTYPE html> <html> <body> <div id="result"></div> </body> <script> var text = ""; const student = { name : "Jane Doe", age : 27 } student.age = 29; text += student.name + "<br>"; text += student.age + "<br>"; document.getElementById("result").innerHTML = text; </script> </html>

在上面的程式碼中,正如輸出中所看到的,age 屬性可以成功修改。

結論

const 關鍵字可以幫助防止意外的使用者更改您的變數,以及跟蹤在整個程式執行過程中保持不變的值。

更新於:2022年11月10日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.