Java Script Event Looping を簡単に説明します。

Nov 07 2022
Javascript は、シングルスレッドの同期プログラミング言語です。HTML や CSS と並んで、World Wide Web のコア技術の 1 つです。

Javascript は、シングルスレッドの同期プログラミング言語です。HTML や CSS と並んで、World Wide Web のコア技術の 1 つです。2022 年の時点で、Web サイトの 98% がクライアント側で Web ページの動作に JavaScript を使用しており、多くの場合、サードパーティのライブラリが組み込まれています。

Javascript のいくつかの基本的なセマンティクスに精通していると仮定して、議論のメイン トピック、つまりEvent Loopingに移りましょう

JavaScript には、コードの実行、イベントの収集と処理、およびキューに入れられたサブタスクの実行を担当するイベント ループに基づくランタイム モデルがあります。このモデルは、C や Java などの他の言語のモデルとは異なります。

イベント ループがどのように機能するかを理解するには、以下のトピックを徹底的に理解する必要があります。

  1. スタックメモリ
  2. ヒープメモリ
  3. スタック、ヒープ、およびキュー

以下のコード例を検討してください。

function add20(b) {
  const a = 20;
  return a + b;
}

function multiplyBy3(x) {
  const y = 3;
  return add20(x * y);
}

const ma = multiplyBy3(5); // assigns 35 to ma

      
                

  1. を呼び出すと、引数とローカル変数multiplyBy3への参照を含む最初のフレームが作成されます。multiplyBy3's
  2. multiplyBy3呼び出すadd20と、2 番目のフレームが作成され、最初のフレームの上にプッシュされ、add20's引数とローカル変数への参照が含まれます。
  3. 戻るとadd20、一番上のフレーム要素がスタックからポップされます (multiplyBy3呼び出しフレームのみが残ります)。
  4. multiplyBy3戻るとき、スタックは空です。

ヒープ メモリは、オブジェクトのランダムなメモリ割り当てです。上記のコード サンプルでは、​​関数パラメーターはヒープ メモリに格納され、最後の関数参照/フレームがスタックから削除されるまで削除されます。

キューは、JS イベント ループがメッセージを検索し、関数スタックが空になるたびにそれらを関数実行スタックに配置する場所です。このプロセスは、メッセージ キューが空になるまで続行されます。

キュー内のメッセージごとに、スタックに関数フレームがロードされ、キュー内のメッセージ用に空になります(存在する場合)

イベントループ

イベント ループの名前は、通常の実装方法から付けられたもので、通常は次のようになります。

while (queue.waitForMessage()) {
  queue.processNextMessage();
}

これを読んでくれてありがとう。あなたの愛をサポートし、共有し続けてください。

© Copyright 2021 - 2022 | hachiwiki.com | All Rights Reserved