iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

ECMAScriptとはなんなのか?

最近Webフロントを入門したことで、JavaScriptを勉強する機会が増えたが、ECMAScriptについての理解が曖昧だったので軽くメモ👷‍♀️

ブラウザでのJavaScript

JavaScriptのコードをプログラムとして動作させるには、JavaScriptエンジンでコードをコンパイルして実行させる必要があります。ChromeSafariを始めとしたブラウザは、それぞれJavaScriptエンジンがあり、これにより同じJavaScriptでもブラウザによって挙動が変わっています。

ちなみに、JavaScriptエンジンには下記のようなものがあります。

エンジン 内容
V8 Googleによって開発されたエンジンで、Chromeなどで使用されている
SpiderMonkey Mozillaによって開発されたエンジンで、Firefoxなどで使用されている
JavaScriptCore AppleSafari向けのエンジン
Chakra Microsoft Edge向けのエンジン
Hermes Facebookが開発したエンジンで、React Native向けに最適化されている

ECMAScriptとは?

先ほど紹介したような各JavaScriptエンジンで、JavaScriptのコードがどのように動くかが決まっていなっかたら、それぞれのブラウザごとにJavaScriptを逐次書くようになり大変です。そのようなことが内容に、JavaScriptのコードがどのように動くべきかを決めた仕様書がECMAScriptになります。

ECMAScriptの種類がいっぱいある?

ECMAScriptは、JavaScriptエンジンの仕様書なので、時間とともに当然新しくなっていきます。それぞれのバージョンで使えるJavaScriptの構文やブラウザが対応しているECMAScriptのバージョンも異なります。

ちなみに、エンジニアなら誰しも新しいECMAScriptでコードを書きたいと思うでしょう。そんな時に使えるのがbabelというコンパイラです。babelECMAScriptのバージョンの違いを吸収して、新しいECMAScriptを古いバージョンに変えてくれたりします。

babeljs.io

てな感じで本日も以上となります🍺

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com