本記事では、JavaScriptとECMAScriptの違いと歴史について解説しています。
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
Netscape NavigatorとInternet Explore
JavaScriptとECMAScriptの違いを理解するには、「Netscape Navigator」と「Internet Explore」について知る必要があります。
現代の主要ブラウザと言えばChromeやFirefoxですが、1990年代のインターネット黎明期はNetscape Communications社が開発したNetscape Navigatorと皆さんご存知のMicrosoft社が開発したInternet Exploreのブラウザが大きなシェアを持っていました。
そんな中、Netscape Communications社がJavaScript言語の開発をしました。JavaScript言語が開発されてから、Internet Exploreでも取り入れますが各社が独自に機能を拡張していた為、互換性がありませんでした。
そこで、JavaScriptに互換性を持たせるためにNetscape Communications社は国際標準化団体のECMAに依頼し、JavaScriptのコアの部分を言語仕様として切り出したECMAScriptが誕生しました。
このECMAScriptが誕生したことにより、ブラウザ間での仕様が統一されるようになりました。
ECMAScriptが誕生する前までは、Netscape NavigatorとInternet Exploreで仕様が異なっていたため、同じ内容のプログラムでもNetscape Navigatorで動くソースコードとInternet Exploreで動くソースコードの2つを用意する必要がありました。
しかし、ECMAScriptが誕生して仕様が統一されると1つのソースコードでお互いのブラウザが動作できるようになります。
ECMAScriptについて
バージョン
JavaScriptの勉強をしていると、ES5やES2015というフレーズが出てきますがこれはECMAScriptのバージョンを表しています。
これまでに公開されたECMAScriptのバージョンは以下の通りです。
バージョン | 通称 | 公開日 |
---|---|---|
ECMAScript1 | ES1 | 1997/6 |
ECMAScript2 | ES2 | 1998/6 |
ECMAScript3 | ES3 | 1999/12 |
ECMAScript5 | ES5 | 2009/12 |
ECMAScript5.1 | ES5.1 | 2011/6 |
ECMAScript 2015 | ES2015 / ES6 | 2015/6 |
ECMAScript 2016 | ES2015 / ES7 | 2016/6 |
ECMAScript 2017 | ES2015 / ES8 | 2017/6 |
ECMAScript 2018 | ES2015 / ES9 | 2018/6 |
ECMAScript 2019 | ES2015 / ES10 | 2019/6 |
ECMAScript 2020 | ES2015 / ES11 | 2020/6 |
ECMAScript4(ES4)が抜けていますが、これは破棄されたため除外しています。
仕様策定までのステップ
ECMAScriptでは各機能の随時アップデートが行われています。各機能のアップデートはStage0〜Stage4の5段階の状態を持っており、このステップに従って仕様策定がされています。
段階 | 通称 | 概要 |
---|---|---|
Stage0 | Strawman | アイデア・企画 |
Stage1 | Proposal | 機能提案・検討 |
Stage2 | Draft | ドラフト版の仕様書作成 |
Stage3 | Candidate | ブラウザへの実装・テスト |
Stage4 | Finished | 仕様決定 |
stage2(Draft)以降のタイミングで仕様書に追加されていきます。
最新の仕様について興味のある方は、こちらのECMAScript公式ページをご参考ください。