📜  ECMAScript 2021 更新中的新功能(1)

📅  最后修改于: 2023-12-03 15:30:35.794000             🧑  作者: Mango

ECMAScript 2021 更新中的新功能

ECMAScript 2021 是 JavaScript 的最新版本,同时也是一系列新特性的发布。这些新特性将使得开发人员更加容易地编写更安全和更好的代码。以下是 ECMAScript 2021 新增的几个重要特性:

String.prototype.replaceAll

字符串操作一直是 JavaScript 中比较繁琐且易错的地方,ES2021 引入了 replaceAll 函数使得字符串替换操作更易于使用。

const str = "hello world";
const replaced = str.replaceAll("hello", "hi");
console.log(replaced); // "hi world"
Promise.any

Promise.any 函数在多个异步操作之间选择第一个成功的操作并返回它的值。如果所有操作都失败,则返回一个 AggregateError 对象,其中包含一个失败操作的数组。

const promises = [
  Promise.reject(0),
  Promise.resolve(1),
  Promise.reject(2),
];

Promise.any(promises).then((result) => {
  console.log(result); // 1
}).catch((err) => {
  console.log(err.errors); // [0, 2]
});
Logical Assignment Operators

ES2021 引入了逻辑赋值运算符,使得对变量的赋值更加地简便。

let count = 1;
count ||= 2; // 等同于 count = count || 2;
console.log(count); // 1

let enabled;
enabled ??= false; // 等同于 enabled === null || enabled === undefined ? false : enabled;
console.log(enabled); // false
WeakRefs

WeakRefs 是一种新的对象引用类型,它们不会阻止它们引用的对象被垃圾回收。这使得开发人员可以更好地管理内存并确保程序的稳定性。

const reference = { value: 42 };
const weakRef = new WeakRef(reference);

console.log(weakRef.deref().value); // 42
Numeric Separators

在数字常量中使用 _ 分隔符有助于代码的可读性和打印输出。

const num = 1_000_000_000;
console.log(num); // 1000000000

以上是 ECMAScript 2021 新增的几个特性,每个特性都将帮助开发人员更好地编写 JavaScript 代码,并使得编写更高质量的应用程序更加容易。