目录

ECMAScript 2021/2022

JavaScript 版本号

旧的 JS 版本以数字命名:ES5 (2009) 和 ES6 (2015)。

从 2016 年开始,版本按年份命名:ECMAScript 2016、2017、2018、2019,...

ES2021 的新特性


ES2022 的新特性

警告

这些功能相对较新。

较旧的浏览器可能需要替代代码(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 75 Edge 79 Firefox 74 Safari 13.1 Opera 67
Jun 2019 Jan 2020 Oct 2019 Sep 2019 Jun 2019

JavaScript Array at()

ES2022引入数组方法at()

示例

获取水果的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
亲自试一试 »

获取水果的第三个元素:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];
亲自试一试 »

这个at()方法从数组返回一个索引元素。

这个at()方法返回相同的[]

这个at()自 2022 年 3 月起,所有现代浏览器都支持该方法:

Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Apr 2021 Jul 2021 Jul 2021 Mar 2022 Aug 2021

笔记

许多语言允许negative bracket indexing像 [-1] 一样从对象/数组/字符串的末尾访问元素。

这在 JavaScript 中是不可能的,因为 [] 用于访问数组和对象。 obj[-1] 指的是键 -1 的值,而不是对象的最后一个属性。

这个at()ES2022中引入了方法来解决这个问题。


JavaScript 字符串 at()

ES2022引入了字符串方法at()

示例

获取名字的第三个字母:

const name = "91xjr";
let letter = name.at(2);
亲自试一试 »

获取名字的第三个字母:

const name = "91xjr";
let letter = name[2];
亲自试一试 »

这个at()方法从字符串返回索引元素。

这个at()方法返回相同的[]

这个at()自 2022 年 3 月起,所有现代浏览器都支持该方法:

Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Apr 2021 Jul 2021 Jul 2021 Mar 2022 Aug 2021