JavaScript: 実行コンテキスト

Jan 23 2023
私たちが作成したコードが実行されている間、バックグラウンドで目に見えないプロセスが存在します。Javascript エンジンがコードを読み取って実行するときは、2 段階で行われます。

私たちが作成したコードが実行されている間、バックグラウンドで目に見えないプロセスが存在します。Javascript エンジンがコードを読み取って実行するときは、2段階で行われます。実行コンテキストと呼ばれるこの一般的なプロセスには、作成フェーズと実行フェーズとして説明したように2 つのステージがあります。

作成フェーズと呼ばれる最初の段階では、JS エンジンはある種のコードの習熟と準備作業を行います。コンテキストを作成し、変数と関数を保存するためにメモリを割り当てます。次の段階である実行フェーズでは、JS エンジンは、すでに使い慣れている変数に前述の値を代入し、関数を呼び出します。

それは、ある種の食べ物を準備することにたとえることができます。私たちは、これから調理する料理にどのような付属品が必要かを最初から把握します (作成段階)。

作成フェーズ

次に、物資の量を決定し、食料を準備するアクションを開始します(実行フェーズ)。

実行フェーズ

コードが初めて実行されるとき、グローバル実行コンテキストが最初に作成され、前述のフェーズが実行されます。次に、関数が存在して呼び出される場合、関数実行コンテキストが作成され、両方のフェーズが実行されます。

以下のコードを使用すると、これらすべてを実際に確認できます。

  1. このコードがエンジンによって読み取られると、最初にグローバル コンテキストが作成されます。
  2. グローバル実行コンテキスト

2. お気づきかと思いますが、getTechStack関数のtech変数では何も行われていません。これは、変数がgetTechStack関数内にあるためです。9 行目のようにこの関数が呼び出された後、新しい関数コンテキストが作成され、このコンテキストで 2 つのフェーズが再度実行されます。その場合にのみ、tech変数は他の変数と同様に扱われます。

関数実行コンテキスト

グローバル コンテキストとは異なり、関数コンテキストのグローバル オブジェクトは、関数のパラメーターを参照する引数オブジェクトと同等になります。

したがって、グローバルコンテキスト以外の関数が呼び出されるたびに、新しいコンテキストが作成され、同じ手順が繰り返されます。

読んでくれてありがとう。:)

その他のトピック: