ECMAScript 2021

JavaScript バージョン番号

古いJSバージョンは数字で命名されます:ES5 (2009) と ES6 (2015)。

2016年から、バージョンは年によって命名されます:ECMAScript 2016、2017、2018、2019、...

新しい機能

ES2021 での新しい機能:

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月