JavaScript 中變量聲明的語法變體,包括全局變量
簡介:
JavaScript提供了用於宣告變數的各種語法選項,包括神秘的var 關鍵字及其替代方案。本文探討了全域範圍內這些聲明方法之間的主要差異。
變數宣告語法:
-
var a = 0;: 這種傳統語法為名為a 的全域變數賦值,此變數成為全域物件(通常是window 中的)的屬性瀏覽器)。
-
a = 0;: 省略 var 關鍵字會隱式創建一個全域變量,使其強烈建議不要並且在嚴格模式下容易出錯。
-
window.a = 0;: 這種方法明確地在全域上設定一個屬性對象,主要用於從外部框架或函式庫存取變數。
區別:
1.物件綁定:
- var 宣告在全域物件的環境記錄上建立標識符綁定。
- let 和 const 宣告在單獨的宣告式環境記錄上建立識別符綁定,從而使它們的變數在其範圍之外無法存取。
2.存取時間(臨時死區):
- var 綁定在程式碼執行之前建立(全域範圍)並且可以立即存取。
- let 和 const 綁定在程式碼之前建立執行,但在到達對應的宣告語句之前無法存取(Temporal Dead區)。
3。屬性建立:
- var 在全域物件上建立可列舉屬性。
- let 和 const 不會在全域物件上建立屬性。
4.從外部上下文存取變數:
- window.a 允許從可能無法識別var 宣告的外部框架或庫存取全域變數。
其他ES2015 的語法變化(ES6):
-
let a = 0;: 建立一個具有區塊作用域的非全域變數。
-
const a = 0;: 創建一個帶有block 的非全局常量
結論:
理解這些語法變化對於有效的JavaScript 開發至關重要。雖然 var 是傳統的,但通常喜歡使用 let 和 const 來改進範圍管理和增強效能最佳化。 window.a 語法在特定情況下仍然有用。
以上是在 JavaScript 中宣告全域變數時,`var`、`let`、`const` 和 `window.a` 有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!