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 月 |