JavaScriptランタイム(JsRT,JavaScript runtime)って何?

2021年1月14日JavaScript

JavaScriptランタイム(JsRT、JavaScript runtime)について説明します。

JavaScriptランタイム(JsRT)って何?

JavaScriptランタイム(JsRT、JavaScript runtime)はJavaScriptの実行が開始されて終わるまで必要なことがすべてが詰め込まれている大きな箱だと思ってください。
そのJavaScriptランタイムの中に、JavaScriptエンジンが入っています。
さらに、JavaScriptランタイムの中には、WEB APIも含まれています。
WEB APIというのは、JavaScriptではなく、ブラウザが提供しています。たとえばDOM、Fetch API、Timer、コンソールなどいろいろなwindowのオブジェクトがあります。

これらが同じ箱に入っているので、JavaScriptがwindowオブジェクトを操作できます。

さらに、JavaScriptランタイムには、コールバックキュー(Callback Queue)も入っています。
コールバックキューというのは、たとえば、click, timer, dataなどです。
クリックしたらこの動作してね、という動作をJavaScriptで実行するができます。その裏の動きは、コールバックキューのclickのコールバック関数を呼び出し、V8エンジンの中にあるコールスタックに渡し、そして実行、という流れになります。
この流れのことをイベントループ(event loop)といいます。

イベントループって何?

イベントループは、上の例のように、コールバックキューのコールバック関数を呼び出し、V8エンジンの中にあるコールスタックに渡すことです。