ECMAScript 2021
JavaScript バージョン番号
古いJSバージョンは数字で命名されます:ES5 (2009) と ES6 (2015)。
2016年から、バージョンは年によって命名されます:ECMAScript 2016、2017、2018、2019、...
新しい機能
ES2021 での新しい機能:
- Promise.any()
- 文字列メソッド replaceAll()
- 数字区切り記号 (_)
ES2022 での新しい機能:
- 配列メソッド at()
- 文字列メソッド at()
- 正規表現 /d
- Object.hasOwn()
- error.cause
- await import
- プライベートメソッドとフィールド
- クラスフィールド宣言
警告
これらの機能は比較的新しいです。
古いブラウザでは、代替コード(Polyfill)が必要です。
JavaScript 文字列メソッド ReplaceAll()
ES2021 では、文字列メソッド replaceAll() が導入されました:
例
text = text.replaceAll("Cats","Dogs"); text = text.replaceAll("cats","dogs");
replaceAll() メソッドは、指定する文字列ではなく正規表現を使用して指定することができます。
パラメータが正規表現である場合、必ず全域フラグを設定する必要があります (g
),それで TypeError が発生します。
例
text = text.replaceAll(/Cats/g,"Dogs"); text = text.replaceAll(/cats/g,"dogs");
ヒント:ES2020 文字列メソッドmatchAll()が導入されました。
JavaScript 数字区切り記号(_)
ES2021では、数字区切り記号(_
)を使用して、数字をより読みやすくすることができます:
例
const num = 1_000_000_000;
数字区切り記号は視覚的な使用のみです。
例
const num1 = 1_000_000_000; const num2 = 1000000000; (num1 === num2);
数字区切り記号は数字のどの位置に置いてもかまいません:
例
const num1 = 1_2_3_4_5;
注意
数字区切り記号は数字の先頭または末尾に表示されません。
JavaScriptでは、変数数字区切り記号は_で始まることができます。
2020年1月以降、すべての現代ブラウザが数字区切り記号をサポートしています:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
2019年6月 | 2020年1月 | 2019年10月 | 2019年9月 | 2019年6月 |