Contents
- 1 前言
- 2 正文
- 2.1 逻辑赋值运算符
- 2.2 Promise
- 2.3 数字分隔符
- 3 总结
- 4 关于
前言
本文翻译自:The Top 3 New JavaScript ES 2021 (ES 12) Features I’m Excited About (https://medium.com/better-programming/the-top-3-new-javascript-es-2021-es-12-features-im-excited-about-a3ac129efbb2)
主要内容:
- 逻辑赋值运算符
Promise.any- 数字分隔符
得益于 Babel,我使用 `ECMAScript 2021 的新功能已有一年多了。几乎所有功能都是有用的,但是其中三个功能使我节省了大量时间,并使我的代码更具可读性,从而脱颖而出。
让我们看看他们
正文
逻辑赋值运算符
逻辑赋值运算符将逻辑运算(例如??,&&或||)与赋值(例如=)结合在一起。
这里有些例子。
a||=b
如果 a 为真则返回 a,如果 a 为假则返回 b

a &&= b
如果 a 为真,则返回 b , 如果 a 为假,则返回 a

a ??= b
如果 a 为 null 或未定义,则返回 b;如果a为真,则返回a。

一开始,在团队代码 CodeView 时,立即了解这些功能可能有些困难,但过不久,团队成员都掌握了这个技巧
Promise
Promise.any 接受一系列Promise并在任何提供 Promise 解决后立即解决。
听起来很困难,所以这里有个例子:

我们同时发起三个请求。当其中一个请求得到解决时,Promise.any 将解决第一个已解决的请求并将其记录在控制台中(在我们的示例中为Google)。
如果所有 Promise 都失败,Promise.any则会引发新型错误:AggregateError。
AggregateError 对象代表一个错误,其中多个错误包含在一个错误中。
结果如下:

e.errors 是 errors 对象的数组
数字分隔符
数字分隔符使我们能够用 _ 数字文字中的下划线()分隔数千个字符。
这个东西有什么用呢?
它让我们的代码更具有可读性
比如下面一个例子

总结
如果您现在想尝试 ES2021 的这三个新功能,则可以使用以下 Babel 插件:
- https://babeljs.io/docs/en/babel-plugin-proposal-logical-assignment-operators
- https://babeljs.io/docs/en/babel-plugin-proposal-numeric-separator
关于
- 本文首发于 https://cloud.tencent.com/developer/article/1783447


