- JavaScript前端開發基礎教程
- 呂云翔 歐陽植昊 張遠等編著
- 410字
- 2021-10-27 17:00:55
2.1.6 變量提升
在JavaScript里,用var關鍵字聲明的變量的聲明語句都會被默認放在其作用域的最頂部,即使其聲明語句在函數的最底部,它也會優先于其他類型的語句執行。因此在代碼中是可以先使用變量,然后再去定義變量的,例如:

這段代碼可以正常輸出a的值,輸出如圖2.9所示。

圖2.9 樣例輸出2.9
雖然變量定義可以提前,但是其賦值語句是不能提前的,因此遇到提前定義變量的情況,在調用該變量前一定要先給其賦值,否則變量的類型就會變為undefined,例如:

這段代碼輸出的a是“undefined”,輸出如圖2.10所示。

圖2.10 樣例輸出2.10
雖然JavaScript支持變量提升,但是還是建議在其作用域頂部聲明變量,這樣會避免出現以上問題,而且代碼的可讀性也比較好,便于維護。
我們在2.1.4節中提到過,使用let關鍵字聲明的變量是不存在變量提升現象的,因此使用let聲明變量的語句位置不會變動。對于JavaScript初學者,建議盡量使用let關鍵字來聲明變量,因為它更加嚴謹,可以避免許多問題。但因為兩個關鍵字總體上是大同小異的,讀者可以根據自身喜好進行選擇。
推薦閱讀
- WildFly:New Features
- jQuery Mobile Web Development Essentials(Third Edition)
- Software Testing using Visual Studio 2012
- RTC程序設計:實時音視頻權威指南
- Learning Neo4j 3.x(Second Edition)
- Java設計模式及實踐
- 軟件項目管理實用教程
- Mastering Xamarin.Forms(Second Edition)
- 深入實踐Kotlin元編程
- 移動增值應用開發技術導論
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- Joomla!Search Engine Optimization
- Unity 5 Game Optimization
- C語言從入門到精通(微視頻精編版)
- 計算機信息技術實踐教程