この例では、undefined
を印刷する予定です。Javascript:Function hoisting
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