JavaScript 中琳轿,函數(shù)及變量的聲明都將被提升到函數(shù)的最頂部。
JavaScript 中,變量可以在使用后聲明癞松,也就是變量可以先使用再聲明。
只有這個var 才會被提升
只有聲明 還沒賦值的話 變量才會提升
只有這個var 才會被提升
x = 5; // 變量 x 設(shè)置為 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 已經(jīng)賦值了 不會被提升
在頭部聲明你的變量 可以不用先賦值
use strict 情況下就不允許提升了
對于大多數(shù)程序員來說并不知道 JavaScript 變量提升入蛆。
如果程序員不能很好的理解變量提升响蓉,他們寫的程序就容易出現(xiàn)一些問題。
為了避免這些問題哨毁,通常我們在每個作用域開始前聲明這些變量厕妖,這也是正常的 JavaScript 解析步驟,易于我們理解挑庶。