【JavaScript】JavaScript、その前に〜ECMAScriptとは?


ECMAScriptとは?

読み方はエクマスクリプトです。

誕生の理由

まず、JavaScriptは旧Netscape Communications社(1998年、AOLにより買収)が開発したプログラミング言語です。自社ブラウザであるNetscape Navigatorにおける使用が想定されていました。

その手軽さから急速に普及していきましたが、登場初期は各ブラウザベンダーによる独自拡張が行われ、ブラウザ間の互換性が極めて低い状態でした。(これはブラウザ戦争と呼ばれています。ちなみに、Microsoft社による拡張はJScriptと呼ばれています。)

そのため、旧Netscape Communications社は外部団体に標準仕様の策定を依頼しました。その団体がEcma Internationalです。

そしてEcma Internationalにより標準化された仕様がECMAScriptです。

バージョンアップ

引用はこちらの記事からです。仕様策定の流れなども分かりやすく説明されています。

ECMAScript

ECMAScriptは、Ecma InternationalにてECMA-262という規格番号で標準化されています。また、拡張機能としてECMA-357ECMA-402ECMA-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だそうです。

Some ECMAScript Explanations and Stories for Dave

Mozillaについて

現在、Netscape関連の資産・権利は、AOLにより設立された非営利団体Mozilla Foundationに引き継がれています。

そのため、Mozillaの公式サイトでもあるMDN Web Docsは、JavaScriptのリファレンスとして真っ先に挙げられています。

参考リンク