JavaScript実行コンテキスト


#JavaScriptで実行コンテキストを説明します.

n/a.結論


実行コンテキストは、実行可能コードの実行に必要な環境です.

説明:


-ソースコードの評価と実行
すべてのソースコードは、実行前に評価され、実行コードの準備ができています.
ソース・コード・プロシージャでは、実行コンテキストが生成され、先に実行変数、関数などの宣言のみで生成された変数または関数識別子が、実行コンテキストが管理する範囲(ローカル環境の環境レコード)に鍵として登録されます.
ソース評価プロセスが終了すると、実行が開始されます(宣言以外のソースコードは順次実行されます).
ソースコード実行に必要な情報(変数または関数を参照)が、コンテキスト管理を実行するscopeで検索され、取得されます.その後、値の変更などの実行結果は、コンテキスト管理を実行するscopeに登録されます.
JavaScriptエンジンは、コードを実行するために必要なさまざまな情報を理解する必要があります.実行に必要な各種情報は以下の通りです.
변수 (전역변수, 지역변수, 매개변수, 객체의 프로퍼티), 함수 선언, 변수의 유효범위(Scope), this
JavaScriptエンジンは、実行に必要な情報をイメージ化して区別するために、実行コンテキストを物理オブジェクトとして管理します.
-コンテキストを実行する役割
JAvascriptエンジンはコードを読み取り、実行コンテキストの役割を説明します.
1.グローバルコード評価
グローバルコード評価として、変数宣言、関数宣言を実行し、その結果を生成されたグローバル変数、実行コンテキストによって管理されたグローバルスキャンに登録します.
varキーワードとして宣言された変数、関数がグローバルオブジェクトになるproperty、およびメソッド.
2.グローバルコードの実行
評価プロセスが終了したら、実行を開始します.グローバル変数に値を割り当て、関数を呼び出します.
関数が呼び出されると、グローバルコードの実行が一時停止され、関数内でコードが実行されます.
3.関数コード評価
関数コードの評価中に、パラメータ、領域変数宣言が実行され、生成されたパラメータと領域変数がコンテキスト管理を実行する領域スキャンに登録されます.
また、関数内部では、領域変数のように使用できるargumentsオブジェクトが作成され、領域スキャンに登録されます.これにより、このバインドが決定されます.
4.関数コードの実行
関数コードを実行する準備ができており、実行時に実行を開始します.
パラメータ、領域変数に値を割り当て、メソッド呼び出しまたは識別子に遭遇した場合は、スキャンチェーンで検索します.
(使用する変数は変数オブジェクトで値を検索し、ない場合はscopeチェーンに沿って上を検索します.)
関数コード実行プロセスが終了したら、関数呼び出しに戻る前にグローバルコードを実行し続け、最終的に終了します.
このようなコードを実行するには、スキャン、識別子、コードの実行順序などを管理する必要がありますが、これらはすべて実行コンテキストで管理されます.
すなわち、実行コンテキストは、ソースコードを実行するために必要な環境を提供し、コードの実行結果を実際に管理する.
識別子とタグは実行コンテキストのディレクトリ環境として管理され、コード実行順序は実行コンテキストスタック(先入後出)として管理される.

サマリ


実行コンテキストは、ソースコードの実行に必要な環境を提供し、コードの実行結果を実際に管理する領域です.
.
すべてのソースコードは、実行前に評価され、実行コンテキストに変数、関数などの宣言、scope、thisが格納されます.
これらはJavaScriptコードを実行するために必要な情報です.
実行コンテキストは、ソースコードの実行に必要な環境を提供し、コードの実行結果を管理する領域です.

Further Step

  • コンテキストスタック
  • を実行
  • Lexical環境
  • Reference

  • https://poiemaweb.com/js-execution-context
  • モダンJavaScript Deep Dive