2013-03-26 32 views
0

即使假塊內部的代碼不會執行,var foo也會被提升到棧頂嗎?不管這個變量被掛起嗎?

function foo(){ 
    if (false) { 
     var foo = 'bar'; //will this be hoisted even if its never executed? 
    } 
} 

我看到它是,只是困惑......我沒有想到它被捲入一個虛假的條件下被吊起來。

+0

是的,另外,foo在foo()中的if條件之前和之後都是未定義的。 – 2013-03-26 22:26:11

回答

5

是;吊裝在代碼運行之前發生,因此if聲明是否出現truefalse尚不得而知。