最近Webフロントを入門したことで、JavaScriptを勉強する機会が増えたが、ECMAScriptについての理解が曖昧だったので軽くメモ👷♀️
ブラウザでのJavaScript
JavaScriptのコードをプログラムとして動作させるには、JavaScriptエンジンでコードをコンパイルして実行させる必要があります。ChromeやSafariを始めとしたブラウザは、それぞれJavaScriptエンジンがあり、これにより同じJavaScriptでもブラウザによって挙動が変わっています。
ちなみに、JavaScriptエンジンには下記のようなものがあります。
エンジン | 内容 |
---|---|
V8 | Googleによって開発されたエンジンで、Chromeなどで使用されている |
SpiderMonkey | Mozillaによって開発されたエンジンで、Firefoxなどで使用されている |
JavaScriptCore | AppleのSafari向けのエンジン |
Chakra | Microsoft Edge向けのエンジン |
Hermes | Facebookが開発したエンジンで、React Native向けに最適化されている |
ECMAScriptとは?
先ほど紹介したような各JavaScriptエンジンで、JavaScriptのコードがどのように動くかが決まっていなっかたら、それぞれのブラウザごとにJavaScriptを逐次書くようになり大変です。そのようなことが内容に、JavaScriptのコードがどのように動くべきかを決めた仕様書がECMAScript
になります。
ECMAScriptの種類がいっぱいある?
ECMAScriptは、JavaScriptエンジンの仕様書なので、時間とともに当然新しくなっていきます。それぞれのバージョンで使えるJavaScriptの構文やブラウザが対応しているECMAScriptのバージョンも異なります。
ちなみに、エンジニアなら誰しも新しいECMAScriptでコードを書きたいと思うでしょう。そんな時に使えるのがbabel
というコンパイラです。babel
はECMAScriptのバージョンの違いを吸収して、新しいECMAScriptを古いバージョンに変えてくれたりします。
てな感じで本日も以上となります🍺