ECMAScript(エクマスクリプト)は、Ecmaインターナショナルにおいて標準化されたJavaScriptの国際規格である。また、ISO/IEC JTC 1においてはISO/IEC 22275:2018[3]、日本産業規格においてはJIS X 3060:2000として規格化されている[4][5]。
バージョン
| この記事は更新が必要とされています。
この記事には古い情報が掲載されています。編集の際に新しい情報を記事に 反映させてください。反映後、このタグは除去してください。 (2022年3月) |
ECMAScript仕様は、Ecma InternationalにてECMA-262という規格番号で標準化されている。改訂にあたっては版 (edition) が更新されている。
6th editionから、「ECMAScript 2015」仕様の名称に発行年が付加されることになった。以降、ECMAScriptは毎年改訂されることになり、以降特定の版を指す場合は、edition名ではなく年号つきの仕様書名で呼ばれることが推奨されている[6]。
Edition
|
公開日
|
以前のバージョンとの違い
|
編集者
|
1
|
1997年6月
|
初版
|
Guy L. Steele, Jr.
|
2
|
1998年6月
|
Editionとしての仕様はそのままであり、ISO/IEC 16262 international standardに完全な対応をした
|
Mike Cowlishaw
|
3
|
1999年12月
|
正規表現、よりよい文字列の取り扱い、新しいコントロール構文、try/catch例外処理、より厳格なエラー処理、数字のその他の書式化フォーマット
|
Mike Cowlishaw
|
4
|
放棄
|
4th Editionは放棄された。言語の複雑化に関する政治的な差異による。いくつかの成果は5thの基礎として採用され、いくつかは6thの基礎となっている。
|
|
5
|
2009年12月
|
"strictモード"、初期化時に発生しがちなエラーを回避するための追加仕様の追加。多くの曖昧な部分、および仕様に準拠しつつも現実世界の実装の融通の利く振る舞いを明確にした。いくらかの新機能、getterやsetter、JSONライブラリのサポート、より完全なオブジェクトの属性のリフレクション[7]
|
Pratap Lakshman, Allen Wirfs-Brock
|
5.1
|
2011年6月[8]
|
ISO/IEC 16262:2011規格と同様の表記に修正
|
Pratap Lakshman, Allen Wirfs-Brock
|
6 (2015)
|
2015年6月
|
クラス、モジュール、イテレータ、for/ofループ、Pythonスタイルのジェネレータ、アロー関数、2進数および8進数の整数リテラル、Map、Set、WeakMap、WeakSet、プロキシ、テンプレート文字列、let、const、型付き配列、デフォルト引数、Symbol、Promise、分割代入、可変長引数
|
Allen Wirfs-Brock
|
7 (2016)
|
2016年6月
|
冪乗演算子、Array.prototype.includes
|
Brian Terlson
|
8 (2017)
|
2017年6月
|
非同期関数 (async/await)、SharedArrayBufferとAtomics、String.padStart/padEnd、Object.values/entries、Object.getOwnPropertyDescriptors、関数の引数における末尾のカンマ許容
|
|
9 (2018)
|
2018年6月
|
オブジェクトに対するスプレッド構文、非同期イテレーション、Promise.prototype.finally、正規表現への機能追加
|
Brian Terlson
|
10 (2019)
|
2019年6月
|
Array.prototype.flat、Array.prototype.flatMap、Object.fromEntriesの追加、他
|
Brian Terlson, Bradley Farias, Jordan Harband
|
11 (2020)
|
2020年6月
|
オプショナルチェイニング演算子?. 、Null合体演算子?? 、BigIntの追加、他
|
Jordan Harband, Kevin Smith
|
12 (2021)
|
2021年6月
|
|
Jordan Harband, Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|
13 (2022)
|
2022年6月
|
|
Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|
14 (2023)
|
2023年6月[9]
|
配列操作メソッドの追加、#! (シバン (Unix))のサポート、WeakMapのキーにおけるSymbolの利用。
|
Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|
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との連携はドキュメントの操作を可能にする。
- ^ Mozillaは1.8 Beta 1以降でE4Xをサポートしている。
- ^ 2001年頃のマイクロソフトの草案であり、独自に開発を進めたもので、現在のECMAScript 4草案とは大きく異なる。
- ^ 2001年頃のNetscapeの草案に近く、現在のECMAScript 4草案のサブセットに近い。
ECMAScript 4
ECMAScript 4は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている。
1回目
2000年〜2003年ごろ行われた。主に、旧Netscape社[10]とマイクロソフトによって行われたが、意見がまとまらずに、打ち切りとなった。この時の案はActionScriptへと引き継がれた。
2回目
2007年〜2008年ごろ、2回目の仕様作成が行われた。大きく機能を追加される予定であったが、意見がまとまらず、2008年8月13日に、小規模の改善にとどまる、ECMAScript 3.1を進めることとなった[11]。仕様は、http://www.ecmascript.org/docs.php にて公開されている。
以下のような予定があった。
- 大規模・大人数開発のための機能の追加[要出典]
- 型に関する機能の追加[要出典]
- ジェネリックプログラミングの機能の追加
- ECMAScript 3 が下位互換だが、互換でない仕様が一部に入る[要出典]
- ActionScript 3 の上位互換だが、互換でない仕様が一部に入る[要出典]
実装
脚注
関連項目
外部リンク
|
---|
低水準言語 | |
---|
高水準言語 |
1950年代 | |
---|
1960年代 | |
---|
1970年代 | |
---|
1980年代 | |
---|
1990年代 | |
---|
2000年代 | |
---|
2010年代 | |
---|
|
---|
架空の言語 | |
---|
|