澄清Javascript 中變數宣告語法的差異
在Javascript 的全域作用域中,使用不同語法聲明變數確實會導致細微的聲明變數確實會導致細微的聲明變化。
關於你的選項:
1。 var a = 0;
使用「var」宣告變數會建立一個全域變量,該變數也作為全域物件的屬性存在(例如,瀏覽器中的「window」或ES2020 中的“ globalThis」) 。該屬性無法使用“刪除”刪除,因為它是標識符綁定。
2. a = 0;
警告: 強烈建議不要使用此語法。如果沒有「var」或「let」關鍵字,Javascript 會認為這是一個隱式全域變量,但在嚴格模式下會出現錯誤。因此,不建議這樣做。
3.視窗.a = 0;或 globalThis.a = 0;
此語法明確將屬性指派給全域物件。與“var”不同,這些屬性可以透過“delete”刪除。
4. this.a = 0;
分配給「this」會建立一個全域屬性,但不建議這樣做,因為它可能會導致事件處理程式中出現歧義。
其他ES2015 語法:
1.1 let a = 0;
"let" 宣告一個全域變量,該變數不是全域物件的屬性。標識符綁定在封閉區塊的開頭創建,但僅當程式碼執行到達“let”聲明時才可存取。
1.2 const a = 0;
與「let」類似,「const」宣告一個全域常數,它不是全域物件的屬性。但是,常量的值無法變更。
以上是Javascript 變數宣告語法有何差異及其意義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!