ホームページ  >  記事  >  ウェブフロントエンド  >  JS エンジンは実行中にどのように見えるでしょうか?

JS エンジンは実行中にどのように見えるでしょうか?

php中世界最好的语言
php中世界最好的语言オリジナル
2017-12-04 13:49:142240ブラウズ

いわゆる 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フレームワークの概要と使い方の説明

JS開発におけるjssplice()メソッドの使い方

html5でのDOMプログラミングの実装手順

以上がJS エンジンは実行中にどのように見えるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。