ECMAScript
ECMAScript(エクマスクリプト)は、Ecmaインターナショナルにおいて標準化されたJavaScriptの国際規格である。また、ISO/IEC JTC 1においてはISO/IEC 22275:2018、日本産業規格においてはJIS X 3060:2000として規格化されている。
バージョン
ECMAScript仕様は、Ecma InternationalにてECMA-262という規格番号で標準化されている。改訂にあたっては版 (edition) が更新されている。
6th editionから、「ECMAScript 2015」仕様の名称に発行年が付加されることになった。以降、ECMAScriptは毎年改訂されることになり、以降特定の版を指す場合は、edition名ではなく年号つきの仕様書名で呼ばれることが推奨されている。
ECMAScriptにはいくつかの拡張が存在する。
- ECMA-357 (ECMAScript for XML) - 2004年公開、E4Xとして知られる
- ECMA-402(国際化API) - 2012年公開
- ECMA-404 (JSON) - 2013年公開
EcmaはECMAScriptのための "Compact Profile" も定義した — ES-CP、あるいはECMA 327として知られる — リソースの厳しいデバイス用にデザインされている。ECMAScriptのいくつかの動的な機能(『eval』関数など)はオプションにされている。これにより、処理系はプログラムの振る舞いに対してより多くの仮定ができるようになり、その結果、より良いパフォーマンス・トレードオフを実行時に得ることができるようになる。 HD DVD standardはECMAScript Compact Profileに準拠し、完全なECMAScriptの支援をより少ないメモリのデバイスで実行できるよう採用している。
文法
方言およびその呼称
ECMAScript は、ウェブブラウザをはじめとする多くのアプリケーションでサポートされている。DOMとの連携はドキュメントの操作を可能にする。
ECMAScript 4
ECMAScript 4は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
1回目
2000年〜2003年ごろ行われた。主に、旧Netscape社とマイクロソフトによって行われたが、意見がまとまらずに、打ち切りとなった。この時の案はActionScriptへと引き継がれた。
2回目
2007年〜2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1を進めることとなった。
以下のような予定があった。
- 大規模・大人数開発のための機能の追加
- 型に関する機能の追加
- ジェネリックプログラミングの機能の追加
- ECMAScript 3 が下位互換だが、互換でない仕様が一部に入る
- ActionScript 3 の上位互換だが、互換でない仕様が一部に入る
実装
- V8 - C++ - Google Chromeブラウザで使われている
- Rhino (Rhino) - Java
- Narcissus - JavaScript
- SpiderMonkey (SpiderMonkey) - C - Firefox/Mozillaブラウザで使われている
- KJS - C++ - KDEのKonquerorブラウザで使われている
- JavaScriptCore - C++ - MAC OS XのSafariブラウザやdashboardで使われている。KJSベース
- NJS - C
- SEE - Simple ECMAScript Engine - C
- ixlib - C++
- QSA - Qt Script for Applications - C++
- DMDScript - C++/D
- DMonkey - Delphi
- FESI - Free EcmaScript Interpreter - Java
- Scriptonite - Java
- xwt - Java
- JANET - Java
- Epimetheus - C++ - Mozillaプロジェクトによる以前のECMAScript Edition 4草案の実装
脚注
注釈
出典
関連項目
- ECMAScript for XML (E4X)
- JavaScript Object Notation (JSON)
- CommonJS
- TypeScript: JavaScriptの構文を保ちつつ、型に関する機能を外部的に追加したプログラミング言語
外部リンク
- ECMAScript
- ECMAScript言語仕様
- Standard ECMA-262
- ECMA-262 ECMAScript Language Specification 3rd edition (December 1999)
- ECMA-262 ECMAScript Language Specification 5th edition (December 2009)
- ECMA-262 ECMAScript Language Specification 5.1 edition (June 2011)
- Standard ECMA-262 6th Edition / June 2015 ECMAScript 2015 Language Specification
- Standard ECMA-262 12th Edition / June 2015 ECMAScript 2021 Language Specification
- The most accurate and up-to-date ECMAScript Language Specification
- Standard ECMA-290 ECMAScript Components Specification (June 1999)
- Standard ECMA-327 ECMAScript 3rd Edition Compact Profile (June 2001)
- Under Translation of ECMA-262 3rd Edition(日本語訳)
- Standard ECMA-262