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編譯
- javascript變數宣告提升簡單介紹JavaScript變數
- go語言變數宣告後的預設值Go變數
- javascript變數宣告需要注意的一個地方JavaScript變數
- Javascript 變數生命週期JavaScript變數
- [譯] JavaScript 中的私有變數JavaScript變數
- SCSS 變數的宣告CSS變數
- Go:變數宣告的多種方法與預設值Go變數
- javascript如何判斷一個變數是否宣告JavaScript變數
- TypeScript 變數宣告TypeScript變數
- JavaScript預編譯原理, 引擎,作用域JavaScript編譯原理
- 宣告變數的問題變數
- Mysql變數宣告的方式MySql變數
- 你真的理解javascript中的預編譯麼?JavaScript編譯
- JavaScript 同時宣告多個變數並賦值JavaScript變數賦值
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- javascript函式和變數宣告提前簡單介紹JavaScript函式變數
- JavaScript變數宣告帶var與不帶var區別JavaScript變數
- Javascript中的迴圈變數宣告,到底應該放在哪兒?JavaScript變數
- 從【預編譯】到【宣告提升】到【作用域鏈】再到【閉包】編譯
- JS變數宣告和函式宣告提升JS變數函式
- JavaScript中的預解析(變數提升)介紹JavaScript變數
- JavaScript中的預解析(變數提升)介紹!JavaScript變數
- 提升的函式宣告會覆蓋同名變數宣告函式變數
- 網易校園招聘考察知識點--預設引數是編譯期間繫結的,而不是動態繫結編譯
- 變數沒有宣告的錯誤變數
- js宣告全域性變數JS變數
- Less tips:宣告變數之前可以引用變數!變數
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 淺談JS變數宣告和函式宣告提升JS變數函式
- var與let宣告變數的區別變數