1. ホーム
  2. javascript

[解決済み] なぜJavaScriptは変数をホイストするのですか?

2022-09-10 15:49:41

質問

なぜJavaScriptは変数をホイストするのですか?

ホイストを実装することを決めたとき、設計者はどのような根拠があったのでしょうか? これを行う他の一般的な言語がありますか?

ドキュメントや記録への関連リンクを提供してください。

どのように解決するのですか?

Stoyan Stefanov氏が「"JavaScript Patterns"」で説明しているように、JavaScriptのインタプリタ実装の結果として、吊り上げが発生するのです。

JSコードの解釈は2つのパスで行われます。最初のパスでは、インタープリタは変数と関数の宣言を処理します。

2回目は、実際のコード実行のステップです。インタープリタは関数式と未宣言の変数を処理します。

したがって、このような動作を記述するために "hoisting"の概念を使用することができます。