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 月