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 月