- 原文地址:Everything about the latest ECMAScript release | ECMAScript 2021
- 原文作者:Kritika Sharma
- 译文出自:掘金翻译计划
- 本文永久链接:github.com/xitu/gold-m…
- 译者:霜羽 Hoarfroster
- 校对者:KimYang、Tong-H
在本文中,我们将通过一些示例代码向大家介绍 ECMAScript 2021 最新版本的功能。
新的功能
1. String.replaceAll( )
将查找到的目标字符串的所有实例替换为所需的字符串:
const fact = "JavaScript is the best web scripting language. JavaScript can be used for both front end and backend";
console.log(fact.replaceAll("JavaScript", "TypeScript"));
// 输出:
// "TypeScript is the best web scripting language. TypeScript can be used for both front end and backend";
复制代码
与之前的 replace()
方法(仅将目标字符串的第一个匹配项替换为所需的字符串)相比:
const fact = "JavaScript is the best web scripting language. JavaScript can be used for both front end and backend";
console.log(fact.replace("JavaScript", "TypeScript"));
// 输出:
// "TypeScript is the best web scripting language. JavaScript can be used for both front end and backend";
复制代码
2. Promise.any( )
只要所提供的Promise
中的任何一个得到解决,Promise.any()
就会直接被解决,而 Promise.all()
则等待所有的 Promise
都得到解决后才会标记为解决,基本上与 Promise.all()
相反。
如果 “兑现了一个 Promise
”:
const promises = [
Promise.reject('错误 A'),
Promise.reject('错误 B'),
Promise.resolve('结果'),
];
Promise
.any(promises)
.then((result) => assert.equal(result, '结果')); //true
复制代码
如果 “所有 Promise
都是被拒绝的”:
const promises = [
Promise.reject('错误 A'),
Promise.reject('错误 B'),
Promise.reject('错误 C'),
];
Promise
.any(promises)
.catch((aggregateError) => {
assert.deepEqual(aggregateError.errors,
['错误 A', '错误 B', '错误 C']); //true
});
复制代码
3. 逻辑赋值操作符
a ||= b
等同于 a || (a = b)
(短路运算符)
为何不是 a = a || b
?
好吧,因为对于前一个表达式,只有在 a
计算为 false
时,赋值才会被执行。因此,前者仅在必要时才会被赋值。相反,后一个表达式始终执行赋值。
a ||= b
的一个例子:
var a = 1;
var b = 2;
a ||= b;
console.log(a); // 1
复制代码
a &&= b
的一个例子:
var a = 1;
var b = 2;
a &&= b;
console.log(a); // 2
复制代码
a ??= b
的一个例子:
var a;
var b = 2;
a ??= b;
console.log(a); // 2
复制代码
4. 数字分隔符
现在,我们可以使用 下划线(_
) 作为数字文字和 bigInt 文字的分隔符。这将帮助开发人员提高其数字文字的可读性(“下划线”基本上会充当我们平日生活中书写数字时候所用的“逗号”(用于在不同的数字组之间提供分隔))。
let budget = 1000000000000; // 可以这样写:
let budget = 1_000_000_000_000;
console.log(budget); // 会打印正常数字:
// 输出:
// 1000000000000
复制代码
希望本文能帮助您了解 ECMAScript 的最新版本。感谢您的阅读,如有任何疑问,请随时发表评论。
参考资料:
如果发现译文存在错误或其他需要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 本文永久链接 即为本文在 GitHub 上的 MarkDown 链接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。