var v='Hello World';
(function(){
alert(v);
var v='I love you';
})()
看下結(jié)果:
解釋:JavaScript中的變量提升(Hoisting)
實(shí)際可以理解為:
var v='Hello World';
(function(){
var v;
alert(v);
v='I love you';
})()
涉及到 js的作用域(塊級(jí)作用域)的原理娄周,不做贅述间校。
函數(shù)提升
function myTest(){
foo();
function foo(){
alert("我來(lái)自 foo");
}
}
myTest();
function myTest(){
foo();
var foo =function foo(){
alert("我來(lái)自 foo");
}
}
myTest();
解釋:
在我們寫(xiě)js code 的時(shí)候,我們有2中寫(xiě)法揍魂,一種是函數(shù)表達(dá)式物独,另外一種是函數(shù)聲明方式重荠。我們需要重點(diǎn)注意的是栋豫,只有函數(shù)聲明形式才能被提升挤安。
參考資料:https://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html