ホームページ >ウェブフロントエンド >jsチュートリアル >JS エンジンは実行中にどのように見えるでしょうか?
いわゆる JavaScript エンジンは、JavaScript スクリプトの処理に特化した仮想マシンであり、通常は Web ブラウザーに組み込まれており、JavaScript スクリプトの解析と実行に使用されます。そこで今日は、JS エンジンが実行時にどのように見えるかを詳しく分析してみましょう。
JavaScript 仮想マシンはプロセス仮想マシンであり、その機能の 1 つは仮想命令セット (ISA) です。
最も人気のある JavaScript エンジンは、もちろん Google の V8 エンジンです。V8 エンジンは Chrome や Node で使用されていますが、他の JavaScript エンジンとは異なり、V8 は JIT コンパイラーのみを使用し、JavaScript の実装を必要としません。以下はそれらの関係を示す簡単な図です:
このエンジンは主に 2 つの グループで構成されています:
メモリ ヒープ: ここでメモリ割り当てが行われます
ランタイム
。一部のブラウザー API (例: setTimeout) がよく使用されますが、これらの API はエンジンによって提供されません。それで、彼らはどこから来たのでしょうか?実際、ここでの実際の状況は少し複雑です。
上の図では、メインスレッドの実行中にヒープとスタックが生成され、スタック内のコードがさまざまな外部 API を呼び出し、さまざまな イベント (クリック) を「タスクキュー」に追加します。ロード、完了)。スタック内のコードが実行される限り、メインスレッドは「タスクキュー」を読み取り、それらのイベントに対応するコールバック関数を順番に実行します。
実行スタック(同期タスク)内のコードは、必ず「タスクキュー」(非同期タスク)を読み込む前に実行されます。
非同期タスクのイベントを配置することに加えて、「タスク キュー」は時間指定イベント、つまり特定のコードがどのくらいの時間後に実行されるかを指定することもできます。
そのため、DOM、AJAX、setTimeoutなど、ブラウザーが提供するWeb APIと呼ばれるエンジンの外側にもAPIがたくさんあります。
要約すると、比喩的に言えば、JavaScript エンジンは動作可能なマシンであり、JavaScript 仮想マシンはこのマシンの実行コアであり、JavaScript ランタイムはそのマシンです。
これらの事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
関連書籍:
以上がJS エンジンは実行中にどのように見えるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。