區分JavaScript 中的變數宣告語法,包含全域變數
在JavaScript 中,在全域範圍內宣告變數時,有些微妙但重要的地方各種文法之間的差異。讓我們探討一下這些差異:
1。 var vs. let vs. const
-
var a = 0;: 建立一個全域變量,它也是全域物件的屬性(可以在瀏覽器中作為window訪問) )。由於潛在的意外副作用和變數提升問題,此語法已被棄用。
-
let a = 0; (ES2015 ): 建立一個不是全域物件屬性的全域變數。它引入了一個“臨時死區(TDZ)”,其中變數在遇到 let 語句之前無法存取。
-
const a = 0; (ES2015 ): 建立一個全域常數,它也不是全域物件的屬性。 Const 綁定有額外的限制:您必須提供初始化程序,並且該值不能在運行時更改。
2. a = 0;
強烈建議不要使用此語法來聲明全域變數而無需明確聲明。在嚴格模式下被認為是錯誤。
3.視窗.a = 0;與globalThis.a = 0;
-
window.a = 0: 在全域全域全局範圍內使用時相當於a = 0。它在 window 物件上建立一個全域屬性。
-
globalThis.a = 0: window.a 的更現代替代方案,適用於所有環境(包括非瀏覽器上下文)。
4。 this.a = 0;
在全域物件上建立屬性(在全域範圍內使用時)。但是,不建議使用這種語法,因為它在某些情況下可能會產生歧義。
以上是不同的 JavaScript 變數宣告語法如何影響全域作用域?的詳細內容。更多資訊請關注PHP中文網其他相關文章!