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 解析步驟,易于我們理解。