JavaScript 變量提升

JavaScript 中,函數及變量的聲明都將被提升到函數的最頂部。
JavaScript 中,變量可以在使用后聲明,也就是變量可以先使用再聲明。

只有這個var 才會被提升

只有聲明 還沒賦值的話 變量才會提升
只有這個var 才會被提升

x = 5; // 變量 x 設置為 5
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x;                     // 在元素中顯示 x
var x; // 聲明 x

聲明并且賦值的話 不會被提升
var y = 7; // 初始化 y
elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // undefined 7 x報錯了
var x = 5; // 初始化 x  已經賦值了 不會被提升

在頭部聲明你的變量 可以不用先賦值
use strict 情況下就不允許提升了

對于大多數程序員來說并不知道 JavaScript 變量提升。
如果程序員不能很好的理解變量提升,他們寫的程序就容易出現一些問題。
為了避免這些問題,通常我們在每個作用域開始前聲明這些變量,這也是正常的 JavaScript 解析步驟,易于我們理解。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容