こんにちは!frontend developerのyossyです。
今回はECMAScriptについて書こうと思います。そもそもECMAScriptはES~の様に省略される事の方が多いのではないでしょうか。過去にはJavaScript以外にもECMAScriptを実装している言語は存在します。
JavaScriptは、作成された後にNetscapeとSun MicrosystemsによってEcmaに提出され、ECMA262通称ECMA Scriptという名称になりました。Ecma Internationalというスイスの標準化団体が国際標準の定義を行っています。IE9以降MicrosotftはJScriptという名前を使用せず、JavaScriptという名称を使い始めました。201x年以降ECMAScriptを実装している唯一の言語はJavaScriptとなります。
過去から現在に至るまでES1~ES9のバージョンがリリースされています。
| Edition | 正式名称 | リリース |
|---|---|---|
| ES9 | ES2018 | 2018年6月 |
| ES8 | ES2017 | 2017年6月 |
| ES7 | ES2016 | 2016年6月 |
| ES6 | ES2015 | 2015年6月 |
| ES5.1 | ES5.1 | 2011年6月 |
| ES5 | ES5 | 2009年12月 |
| ES4 | ES4 | 廃棄 |
| ES3 | ES3 | 1999年12月 |
| ES2 | ES2 | 1998年6月 |
| ES1 | ES1 | 1997年6月 |
| 追加仕様 | ES2015 (ES6) |
ES2016 (ES7) |
ES2017 (ES8) |
ES2018 (ES9) |
|---|---|---|---|---|
| let/const宣言 | ○ | |||
| class構文 | ○ | |||
| Promise | ○ | |||
| アロー関数 | ○ | |||
| importとexportによるモジュール構文 | ○ | |||
| テンプレート文字列 | ○ | |||
| 関数の可変長引数 | ○ | |||
| 関数のデフォルト引数 | ○ | |||
| 分割代入 | ○ | |||
| 配列展開 | ○ | |||
| for of | ○ | |||
| Map/Set/WeakMap/WeakSet | ○ | |||
| Symbol | ○ | |||
| 型付き配列 | ○ | |||
| Array.includes | ○ | |||
| Object.values/Object.entries | ○ | |||
| String.padStart/String.padEnd | ○ | |||
| Object.getOwnPropertyDescriptors | ○ | |||
| 末尾カンマ許容 | ○ | |||
| Async/Await | ○ | |||
| オブジェクトのRest/Spread | ○ | |||
| Promise.finally | ○ | |||
| テンプレートリテラルの改修 | ○ | |||
| 正規表現:sオプション | ○ | |||
| 正規表現:名前付きグループ | ○ | |||
| 正規表現:後読み | ○ | |||
| Unicodeプロパティエスケープ | ○ | |||
| for-await-of | ○ |
最後に今後のES10(2019/6?)をご紹介致します。
https://medium.com/@selvaganesh93/javascript-whats-new-in-ecmascript-2019-es2019-es10-35210c6e7f4b
https://github.com/tc39/proposals