返回

探索 ES2021:迈向 JavaScript 未来

前端

ES2021 是 JavaScript 的最新版本,它引入了许多激动人心的新特性。这些新特性将增强 JavaScript 的功能和灵活性,使其更易用、更强大。

逻辑赋值运算符

逻辑赋值运算符允许您将一个表达式的结果赋值给一个变量,同时执行一个逻辑操作。例如,以下代码使用逻辑赋值运算符将变量 x 的值设置为 true,同时检查 x 是否为 true

if (x ??= true) {
  // x is true
}

字符串替换

ES2021 中的字符串替换功能使您可以使用正则表达式来替换字符串中的文本。例如,以下代码使用字符串替换功能将字符串中的所有 a 替换为 b

const str = "Hello, world!";
const newStr = str.replaceAll("a", "b");
console.log(newStr); // Hello, brbld!

Promises.any

Promises.any() 方法接受一个 Promise 数组作为参数,并返回一个 Promise。该 Promise 将在第一个 Promise 解析或拒绝时解析或拒绝。例如,以下代码使用 Promises.any() 方法来等待第一个 Promise 解析或拒绝:

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

Promises.any(promises).then((result) => {
  console.log(result); // 1
}).catch((error) => {
  console.log(error); // 2
});

数值分隔符

ES2021 中的数值分隔符使您可以使用下划线 (_) 来分隔数字。例如,以下代码使用数值分隔符来将数字 123456789 分隔成 123_456_789

const num = 123456789;
const newNum = num.toLocaleString();
console.log(newNum); // 123,456,789

Intl.ListFormat

Intl.ListFormat 对象使您可以格式化列表。例如,以下代码使用 Intl.ListFormat 对象来将数字列表格式化为一个字符串:

const list = [1, 2, 3, 4, 5];
const listFormat = new Intl.ListFormat();
const formattedList = listFormat.format(list);
console.log(formattedList); // "1, 2, 3, 4, and 5"

Intl.DateTimeFormat 的 dateStyle 和 timeStyle 选项

Intl.DateTimeFormat 对象的 dateStyletimeStyle 选项允许您自定义日期和时间的格式。例如,以下代码使用 dateStyletimeStyle 选项来格式化日期和时间:

const date = new Date();
const dateTimeFormat = new Intl.DateTimeFormat("en-US", {
  dateStyle: "full",
  timeStyle: "long",
});

const formattedDateTime = dateTimeFormat.format(date);
console.log(formattedDateTime); // "Tuesday, April 13, 2021 at 3:07:42 PM"

这些只是 ES2021 中众多新特性中的一小部分。这些新特性将使 JavaScript 更易用、更强大,并为开发人员提供更多构建创新应用程序的工具。