ECMAScriptとは?
読み方はエクマスクリプト
です。
誕生の理由
まず、JavaScriptは旧Netscape Communications社(1998年、AOLにより買収)
が開発したプログラミング言語です。自社ブラウザであるNetscape Navigator
における使用が想定されていました。
その手軽さから急速に普及していきましたが、登場初期は各ブラウザベンダーによる独自拡張が行われ、ブラウザ間の互換性が極めて低い状態でした。(これはブラウザ戦争
と呼ばれています。ちなみに、Microsoft社による拡張はJScript
と呼ばれています。)
そのため、旧Netscape Communications社は外部団体に標準仕様の策定を依頼しました。その団体がEcma International
です。
そしてEcma Internationalにより標準化された仕様がECMAScript
です。
バージョンアップ
引用はこちらの記事からです。仕様策定の流れなども分かりやすく説明されています。
ECMAScriptは、Ecma InternationalにてECMA-262
という規格番号で標準化されています。また、拡張機能としてECMA-357
、ECMA-402
、ECMA-404
という規格も存在します。
そして、仕様の更新が「標準」として承認される度に新しいEdition
がリリースされます。
ただ、最新のECMAScriptの仕様はGitHubに公開され、日々更新されています。
このように更新ごとにバージョン番号を付けずに、常に最新版を公開する仕様のことをLiving Standardと呼びます。
ECMAScriptはLiving Standardですが、これに加えてECMAScript 2017のようにバージョン番号をつけたものも公開されています。 このバージョン付きECMAScriptは、毎年決まった時期のドラフトを元にしたスナップショットのようなものです。
Living Standard
は、ブラウザの変化に柔軟に対応するためなんですね。
ブラウザなどに実際にJavaScriptとして実装される際には、Living StandardのECMAScriptを参照しています。 これは、ブラウザ自体も日々更新されるものであり、決まった時期にしかリリースされないバージョン付きよりもLiving Standardの方が適当であるためです。
ECMAScript2015の策定までは時間がかかっていましたが、ECMAScript2016からは策定プロセスを改善し、リリースまでの間隔も早くなっているそうです。
呼び名の違い
ECMAScript2015(ES6)を元に説明します。
ECMAScript2015とES6は同じ仕様を指しています。
どうして数字部分が違うのか気になりました。
呼び名の由来
ECMAScript2015の2015
は仕様の発行年
を表しています。仕様の名称に年号を使うようになったのは、ECMAScript2015からです。
ES6の6
は規格のEdition
を表しています。ES6はECMA-262 6th Edition
の口語的な略称です。
どちらが正しいのか
現在も両方の呼び方が使われていますが、推奨されている呼び方はECMAScript2015
もしくはES2015
だそうです。
Mozillaについて
現在、Netscape関連の資産・権利は、AOLにより設立された非営利団体Mozilla Foundation
に引き継がれています。
そのため、Mozilla
の公式サイトでもあるMDN Web Docsは、JavaScriptのリファレンスとして真っ先に挙げられています。