有关 ECMAScript 最新版本的所有信息|ECMAScript 2021

在本文中,我们将通过一些示例代码向大家介绍 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. 逻辑赋值操作符

来源: [https://exploringjs.com/impatient-js/ch_operators.html#logical-assignment-operators]

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 链接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享