blog

Js実行コンテキスト

変数を探すときは、現在のコンテキストで探され、見つからなければ、親実行コンテキストオブジェクトで探され、グローバルコンテキストオブジェクトまで探されます。このように複数のコンテキストにある変数オブジェ...

Jul 14, 2020 · 2 min. read

エンジンのJsコードは、'セクションの'実行する方法ではなく、行ごとに実行され、例えば:関数の実行時に、JSエンジンは、いくつかの準備作業を行います、そして、この準備作業は、コンテキストの実装と呼ばれ、コードのこのセクションは、コード以上のものではありません3種類のコードです:グローバルな実装コンテキスト、関数の実行コンテキスト、evalの実行コンテキスト

関数実行コンテキストは、関数呼び出し時に実行されます。関数定義時に定義される関数スコープとは正反対です。

  • 変数オブジェクト
  • スコープの連鎖
  • this

変数オブジェクト

変数オブジェクトは、実行コンテキストに関連付けられたデータスコープであり、そのコンテキストで定義された変数や関数宣言を格納します。

スコープの連鎖

変数が検索されるときは、現在のコンテキストから検索され、見つからなければ、親実行コンテキストオブジェクトからグローバルコンテキストオブジェクトまで検索されます。このように複数のコンテキストを持つ変数オブジェクトは、スコープチェーンと呼ばれる連鎖したリストを形成します。

this

thisバインディングはグローバル実行コンテキストと関数実行コンテキストに分けられます。

  • グローバル実行コンテキストでは、thisはグローバルオブジェクトを指します。
  • 関数実行のコンテキストにおいて、thisの値は関数がどのように呼び出されるかに依存します。参照されているオブジェクトから呼び出された場合、this はそのオブジェクトに設定されます。「の値はグローバル・オブジェクトか未定義に設定されます。

実行プロセス

実行コンテキスト内のコードは、解析と実行の2つのフェーズで処理されます。

実行コンテキストに入る

まだコードを実行していない実行コンテキストに入ると、次の3つのことを行います。

  • スコープの作成
  • 変数、関数、パラメータの作成
  • this'の値の決定

コードの実行

すべての変数の代入を完了し、最後にコードを実行します。

注意: 実行段階では、Javascriptエンジンがソースコードで宣言された実際の場所にlet変数の値を見つけることができない場合、未定義の値が代入されます。

Read next

HTTP共通ヘッダ

User-Agent: ブラウザのカーネル、バージョン、オペレーティングシステムのバージョンなどを読み取るユーザーエージェント文字列。 ホスト:ブラウザがhttpリクエストに使用しているドメイン名。 1つのサーバーに複数のウェブサイトが存在することがあるため、異なるウェブサイトは異なるドメイン名を持っていますが、この場合、クライアントが接続するためのipは同じであり、ipは接続に...

Jul 14, 2020 · 4 min read

フック 問題記録

Jul 11, 2020 · 1 min read

nginxの設定 wss

Jul 10, 2020 · 2 min read

島の数

Jul 10, 2020 · 2 min read