javascript變數宣告提升簡單介紹
所謂的變數宣告提升,也就是說變數的宣告會提前。
javascript程式碼的執行,分為兩個階段,一個是預編譯期,一個是執行期。
變數宣告的前置是在預編譯期間進行的。
看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼console.log(webName); var webName = "螞蟻部落"; console.log(webName);
變數的宣告是在預編譯期間進行的,賦值是在執行的時候進行的。
所以當第一個console.log()執行的時候,變數webName前置宣告瞭,而沒有進行賦值,所以輸出值是undefined,第二個console.log()執行的時候,變數已經賦值,所以輸出"螞蟻部落"。函式的宣告也是同樣的道理,看如下程式碼:
[JavaScript] 純文字檢視 複製程式碼func(); function func() { console.log("softwhy.com"); }
上面的程式碼之所以在函式宣告之前就可以呼叫,是因為在預編譯期間就已經函式宣告就已經完成且前置。
再來看一段程式碼:
[JavaScript] 純文字檢視 複製程式碼func(); var func = function () { console.log("softwhy.com"); }
上面的函式宣告方式就沒函式前置功能,因為上面的函式宣告本質還是宣告一個變數,只不過變數值是一個函式而已。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var antzone = new Date(); function func() { console.log(antzone); if (false) { var antzone = "softwhy.com"; } } func()
上面的程式碼中,雖然if語句內的程式碼永遠不會執行,但是還是會編譯的,所以依然有變數提升現象。
需要主要的是,變數提升是有作用域限制的,也就是變數會提升到當前作用域的頂端。
上面的程式碼等價於:
[JavaScript] 純文字檢視 複製程式碼var antzone = new Date(); function func() { var antzone; console.log(antzone); if (false) { antzone = "softwhy.com"; } } func()
相關文章
- javascript變數宣告簡單介紹JavaScript變數
- javascript函式和變數宣告提前簡單介紹JavaScript函式變數
- javascript 變數簡單介紹JavaScript變數
- javascript變數汙染簡單介紹JavaScript變數
- javascript變數作用於簡單介紹JavaScript變數
- javascript將浮點數數變為整數簡單介紹JavaScript
- JavaScript中的預解析(變數提升)介紹JavaScript變數
- JavaScript中的預解析(變數提升)介紹!JavaScript變數
- javascript函式宣告兩種主要方式簡單介紹JavaScript函式
- 簡單介紹nginx 變數使用Nginx變數
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- JavaScript 簡單介紹JavaScript
- JavaScript 宣告變數JavaScript變數
- 簡單介紹克隆 JavaScriptJavaScript
- javascript物件簡單介紹JavaScript物件
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- JS變數宣告和函式宣告提升JS變數函式
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- 簡單介紹JavaScript閉包JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- javascript constructor簡單介紹JavaScriptStruct
- javascript建立物件簡單介紹JavaScript物件
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript簡單模板引擎介紹JavaScript
- javascript作用域簡單介紹JavaScript
- javascript動態改變元素css樣式簡單介紹JavaScriptCSS
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- 簡單介紹Linux環境變數檔案Linux變數
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 淺談JS變數宣告和函式宣告提升JS變數函式
- JavaScript變數提升JavaScript變數
- JavaScript return語句簡單介紹JavaScript
- javascript鏈式呼叫簡單介紹JavaScript
- javascript除法運算簡單介紹JavaScript
- javascript &&和||運算子簡單介紹JavaScript
- javascript方法過載簡單介紹JavaScript