JavaScript(ECMAScript)の仕様とブラウザ対応状況

最終修正日:2016年10月17日

JavaScriptは、公式な仕様の策定と各ブラウザ・ベンダーの対応状況、さらにフレームワークの仕様を確認した上で、ソフトの利用環境・開発環境に合った機能を選別する必要があり、その調整に大きな労力を割かれます。初めは何を使ってよいのか、勉強してよいのか、分からなくなることも多いと思います。そこで、JavaScriptの仕様策定の流れと、現在の仕様や各ブラウザの対応状況の確認方法、そして過去の変遷と最新動向を整理して紹介します。

JavaScriptの仕様策定の流れ

JavaScriptの仕様統一はECMA(European Computer Manufacturers Association)により行われており、そこではJavaScriptのことをECMAScript(正式名称:ECMA-262)と呼んでいます。TC39という委員会に、主なブラウザ・ベンダーが代表者を派遣して将来のJavaScriptの仕様を議論しています。

現在の仕様や各ブラウザの対応状況の確認方法

JavaScriptの公式な仕様と各ブラウザの対応状況には差があります。機能を先取りするブラウザもあれば、対応が遅れるブラウザもあります。主観的な印象では、Chromeが最も早く対応し、次にFirefox、Safari、Edgeが続き、IEはほとんど対応できていません。ウェブに公開する一般的なサービスでは、現在でも根強く使われているIEに合わせることになるので、最新機能はなかなか使いづらい現状があります。Jqueryなどのフレームワークがその差を埋めてくれる部分もありますが、取捨選択を余儀なくされる場合も多くあります。
正式な現在の仕様は、Standard ECMA-262(英語)で確認できます。
過去の仕様は、
http://www.ecma-international.org/ecma-262/5.1/
http://www.ecma-international.org/ecma-262/6.0/
のようにバージョン番号で整理されています。
公式な仕様を勉強するには、MDN(Mozilla Developer Network) JavaScriptがお勧めです。日本語で学ぶことができますが、少し不明瞭な部分が時々あり、英語の方が正確な表現になっている印象を持ちます。各機能についての主なブラウザの対応状況も記載されています。
各ブラウザの大まかな対応状況は、ウィキペディアのECMAScript(英語)に掲載されています。ECMAScript(日本語)は、更新が遅れがちのようです。
細かな対応状況は、ECMAScript compatibility table(英語)で確認できます。
ちなみに、ブラウザの最新バージョンの確認には、Browse Happy(英語)も使えます。




過去の変遷と最新動向

JavaScriptの仕様は、ブラウザ・ベンダーの主導権争いやウェブの環境変化により、紆余曲折を繰り返してきました。簡単に過去の仕様の変遷を整理します。
・1999年12月に、ECMAScript Edition 3thが策定された後、ECMAScript Edition 3.1thやECMAScript Edition 4thの策定を巡って争いが起き、結局ECMAScript Edition 4thは策定されないまま放棄されました。
・2009年12月には、ECMAScript Edition 3.1thが名称をECMAScript Edition 5thに改められて、小幅な改変に留まる形で策定されました。
・2011年6月には、ECMAScript Edition 5.1thが策定されましたが、これは別の規格組織が策定したISO/IEC Edition 3thとの統一のための仕様で、ECMAScript Edition 5thからの大きな変更はなかったようです。
・2015年6月に、ついに長年の論争の末に、次世代のJavaScriptの仕様として、Class機能などたくさんの新機能を導入したECMAScript Edition 6thが策定されました。
・2016年6月には、ECMAScript Edition 7thが冪乗演算子などいくつかの機能を追加して策定されました。
・2016年10月17日現在は、ECMAScript Edition 8thの策定に向けて審議中。

参照サイト

harmony, ES Wiki
Draft Specification for ES.next (Ecma-262 Edition 6), ES Wiki
Toward Modern Web Apps with ECMAScript 6, Ariya Hidayat, Sencha, 2013/8/13
見えてきた「ECMAScript 6」。JavaScriptの生みの親が書く「Harmony of Dreams Come True」, Publickey 新野淳一, 2012年10月19日
ECMAScript 5 compatibility table, kangax
Standard ECMA-262 5.1 Edition / June 2011, ECMA, June 2011
JavaScript と ECMAScript 仕様, MDN, 2013/05/28 13:01:36
JavaScript の各バージョンにおける新機能, MDN, 2013/05/28 13:01:36
JavaScript, Wikipedia, 2013/05/28 13:01:36
(文中紹介サイト、省略)

最終修正日:2016年10月17日