變量提升

var v='Hello World';
(function(){
    alert(v);
    var v='I love you';
})()

看下結(jié)果:


image.png

解釋: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("我來自 foo");
    }
}
myTest();
image.png
function myTest(){
    foo();
   var foo =function foo(){
        alert("我來自 foo");
    }
}
myTest();
image.png

解釋:
在我們寫js code 的時(shí)候,我們有2中寫法,一種是函數(shù)表達(dá)式,另外一種是函數(shù)聲明方式。我們需要重點(diǎn)注意的是,只有函數(shù)聲明形式才能被提升。

參考資料:https://www.cnblogs.com/damonlan/archive/2012/07/01/2553425.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容