在本例中,我知道它將打印undefined
。Javascript:函數提升
var bar = typeof foo;
var foo = function() {
console.log('abcd');
}
foo();
console.log(bar); // -> undefined
所以我的理解是,當變量懸掛,bar
仍高於foo
,但foo
得到執行,所以不應該解釋知道什麼foo
是什麼?
注:我試圖瞭解解釋器是如何工作的。我的問題不在於如何解決上述問題。
當'bar'被賦予'typeof foo'的值時'foo'沒有被執行。在提升時,'foo'的值是未定義的。 –
通常,最好忘記吊裝存在。只有知道你的函數是否妨礙了可讀性,並且你想最後聲明它們,但是你必須使用一個命名的函數表達式來聲明它們纔是真正有用的。 – 4castle