「関数宣言と変数宣言は、JavaScriptインタプリタによって、スコープの上部に目に見えないように常に表示されます。 - 。関数宣言と変数宣言が呼び出されました。
しかし、最初に揚げたのはどちらですか?
誰かがSegmentFaultで私に尋ねた結果、私は彼に正確な答えを与えるべきです。
「関数宣言と変数宣言は、JavaScriptインタプリタによって、スコープの上部に目に見えないように常に表示されます。 - 。関数宣言と変数宣言が呼び出されました。
しかし、最初に揚げたのはどちらですか?
誰かがSegmentFaultで私に尋ねた結果、私は彼に正確な答えを与えるべきです。
function test() {
return foo;
var foo = true;
function foo(){}
}
console.log(typeof test()) // function
これはホイストしていません –
これは何も証明しません。 'foo = true'という代入は、関数があらかじめ返ってくるので決して実行されません。 –
割り当ては実際には実行されません。 – Axnyff
事実上、それはどのような違いを生むん最初に掲揚されていますか? – deceze
どうしたらいいですか? 「ホイスト」は混乱する概念です。このように、「varまたは関数宣言で宣言された変数のスコープは、関数全体である」という方が簡単です。編集:それはより複雑になる(そしてたぶん問題を正当化する)ということは、変数 "equivalent"とは反対に、変数宣言が代入で動くことです。 –