LoginSignup
0
0

この記事は

JavaScriptの実行環境に関してわかってるようで何もわかってなかったので基本的なことを整理してまとめたメモ。

JavaScriptの実行環境

JavaScriptには大きく分けて二つの実行環境がある。

  • Webブラウザ
  • OS上で実行されるランタイム環境

Webブラウザ

Webブラウザは、クライアントサイドでJavaScriptコードを実行するための環境。
JavaScriptで書かれたコードを解析・実行するエンジンが搭載されていれば(基本的に搭載されている)WebブラウザでJavaScriptを実行することができる。ブラウザ上で動作するものなので、後述のランタイム環境で実行されるもののようにOSの機能にはアクセスできない。

主なJavaScriptエンジン

Webブラウザ JavaScriptエンジン ひとこと
Google Chrome V8(Google) Googleがメンテナンスを行なっているOSSであるChromiumをベースに開発
Microsoft Edge V8(Google) <- Chakra(Microsoft) 2020年にV8に変更された
Internet Explorer Chakra(Microsoft) Internet Explorerのサポートは2022年6月15日に終了
Firefox Spider Monkey(Mozilla) 世界初のJavaScriptエンジン
Safari JavaScriptCore(Apple) Safari向け、そのほか WebKitベースのブラウザでも使用されている

OS上で実行されるランタイム環境:

ランタイム環境は、JavaScriptをサーバーサイドやスタンドアロンのアプリケーションとして実行するためのもの。
ランタイム環境というのが具体的に何をしているかというと、JavaScriptを実行する時にJavaScriptエンジンを使って直接機械語に変換し、OS上で実行できる形にする。ブラウザ上の機能(DOM)などは使用できない。

主なJavaScriptランタイム環境

ランタイム環境 JavaScriptエンジン ひとこと
Node.js V8 サーバーサイドJavaScriptのデファクト標準。
Deno V8 Rustで開発され、セキュリティとTypeScriptをネイティブサポート。
Bun JavaScriptCore エンジンにJSC、開発にZigが採用されており高速に動作。実行環境としてのみでなく、パッケージ管理などさまざまな機能がある

例えば一番シンプルにNode.js動かそうとするとこのように動作する。

hello.js
console.log('hello world!');

🔽

node hello.js       // hello world!

JavaScriptはどうしてバイナリファイルが生成されない?

コードを逐次解析しながら実行するインタープリター型言語として設計されたため。実行時に型が決まる動的型付け言語であるため、事前にコンパイルすることは難しい...

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0