参考
リスト
ES5 の新機能
- ストリクトモード(strict)
- ゲッター(getter)とセッター(setter)
- オブジェクトの最後の属性の後ろにカンマ
- JSON文字列の変換
- trim()
- Object オブジェクトのメソッド強化
- Array オブジェクトのメソッド強化
ES5.1 の新機能
- array.isArray()
ES2015(ES6) の新機能
- クラス (class)
-
テンプレート文字列 (
Hello ${name}
) - モジュール (import, export)
- アロー関数 (=>)
- デフォルト引数 (function(x=0, y=0))
- 可変長引数 (function(x, y, ...arg))
- 定数 (const)
- 局所変数 (let)
- for of ループ (for item of items)
- Map オブジェクト
- Set オブジェクト
- 配列関数 (from(), of())
- 分割代入 ([x, y] = [10, 20])
- スプレッド構文 (...args)
- 型付き配列 (Uint8Array, ...)
- シンボルオブジェクト (Symbol)
- 8進数(0o)と2進数(0b)
- 言語依存フォーマット (NumberFormat())
- 非同期処理 (Promise)
ES2016(ES7) の新機能
- array.includes()
- べき乗演算子(**)
ES2017(ES8) の新機能
- オブジェクト参照 (object.values(), object.entries())
- パディング (string.padStart(), string.padEnd())
- プロパティ記述子参照 (object.getOwnPropertyDescriptors())
- 関数末尾のカンマ (,)
- 非同期処理(async, await)
- 共有メモリ (SharedArrayBuffer) ... Meltdown and Spectre対応としてすべてのブラウザで一時無効化
ES2018(ES9) の新機能
- テンプレート文字列の強化(\uの扱い)
- オブジェクトのスプレッド構文とレスト構文 (...obj)
- 正規表現のsフラグ (/.../s)
- 正規表現の名前付きキャプチャグループ (?<...>)
- 正規表現の前方マッチ条件検索 ((?<=...), (?<!...))
- 正規表現のUnicodeプロパティマッチ (\p{...})
- Promiseのfinally構文
- Promiseのfor await (... of ...)構文
ES2019(ES10) の新機能
- catch引数の不要化
- Symbol.description
- JSON superset
- Well-formed JSON.stringify
- function.toString() でコメントも文字列化
- Object.fromEntries()
- string.trimStart()と string.trimEnd()
- array.flat() と array.flatMap()
ES2020(ES11) の新機能
- 任意精度整数(BigInt)
- for-in ループにおける順序保証
- ヌル合体(Nullish Coalescing)演算子(??)
- オプショナル連結(Optional Chaining)(?)
- globalThis
- string.matchAll()
- ダイナミックインポート(Dynamic Import)
- export * as ns from module 構文
- import.meta
- Promise.allSettled()
ES2021(ES12) の新機能
- 論理代入演算子 (||=, &&=, ??=)
- 数値セパレータ (1_000_000)
- string.replaceAll()
- Promise.any()
- 弱参照(WeakRefs)
ES2022(ES13) の新機能
ES2023(ES14) の新機能