javascript變數的宣告預編譯期間
本章節介紹一個知識點,那就是使用var宣告一個變數的時候,變數的宣告是在預編譯期間。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼var tmp = new Date(); function f(){ console.log(tmp); if (false){ var tmp = "螞蟻部落"; } } f()
上面程式碼的輸出值是undefined。
程式碼中即便if語句中的程式碼不會執行,但是變數tmp在預編譯器期間依然會被宣告,也就會被提升。
但是又由於條件永遠是false,所以tmp變數並不會被賦值為"螞蟻部落"。
所以最終的輸出值undefined,而不是時間日期。
相關文章
- 用預編譯去理解函式宣告提升和變數宣告提升編譯函式變數
- JavaScript 宣告變數JavaScript變數
- javascript變數的宣告以及命名規則JavaScript變數
- JavaScript 變數與函式宣告前置JavaScript變數函式
- JavaScript的預編譯過程分析JavaScript編譯
- [譯] JavaScript 中的私有變數JavaScript變數
- JS----預編譯及變數提升詳解JS編譯變數
- Javascript 變數生命週期JavaScript變數
- SCSS 變數的宣告CSS變數
- JavaScript預編譯原理, 引擎,作用域JavaScript編譯原理
- 你真的理解javascript中的預編譯麼?JavaScript編譯
- Go:變數宣告的多種方法與預設值Go變數
- JavaScript 同時宣告多個變數並賦值JavaScript變數賦值
- 宣告變數的問題變數
- Mysql變數宣告的方式MySql變數
- TypeScript 變數宣告TypeScript變數
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- JavaScript變數宣告帶var與不帶var區別JavaScript變數
- 從【預編譯】到【宣告提升】到【作用域鏈】再到【閉包】編譯
- JS變數宣告和函式宣告提升JS變數函式
- JavaScript中的預解析(變數提升)介紹!JavaScript變數
- JavaScript中的預解析(變數提升)介紹JavaScript變數
- js宣告全域性變數JS變數
- 淺談JS變數宣告和函式宣告提升JS變數函式
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 對預編譯的理解編譯
- var與let宣告變數的區別變數
- go語言 變數的宣告與使用Go變數
- var、let、const宣告變數的區別變數
- Java變數的宣告和初始化Java變數
- python的變數使用前需宣告嘛Python變數
- JavaScript變數的生命週期:為什麼let不被提升JavaScript變數
- #ifndef預編譯編譯
- [譯] 優化 Swift 的編譯時間優化Swift編譯
- java mvc 新趨勢——從執行期間類掃描到編譯期間JavaMVC編譯
- [譯]JavaScript的新功能將改變正規表示式的編寫方式JavaScript
- [Web翻譯]JavaScript中的編譯與填充WebJavaScript編譯
- C++與Rust變數宣告的比較C++Rust變數
- go語言變數的宣告與賦值Go變數賦值