ES12(也称为 ECMAScript 2021)于2021年正式发布,带来了一些非常令人兴奋的新特性。在本文中,我们将快速浏览一下这些新特性,同时提供一些深入的学习和指导意义。
1. Promise.any()
Promise.any() 允许您在一组 Promise 中的任何一个 Promise 解决时进行操作。这是 Promise.race() 的一种变化形式,但它不会在其中一个 Promise 拒绝时立即拒绝整个 Promise,而是仅在所有 Promise 都被拒绝时才整个拒绝。
----- -------- - - --------------------------- -- ------------- --------------------------- -- ------------- --------------------------- -- ------------ -- ----------------------------------- -- --------------------- -- ---- ---------------------- --------------------------------------
2. Promise.allSettled()
Promise.allSettled() 返回一个 Promise,该 Promise 完成或拒绝,并提供一个由 Promise 状态(已解决或已拒绝)及其结果组成的数组。这使您可以轻松地处理所有 Promise 的状态,即使其中一些被拒绝或出错也是如此。
----- -------- - - --------------------------- -- ------------- --------------------------- -- ------------- --------------------------- -- ------------- ------------------------ --------- -- ------------------------------------------- -- ---------------------- -- --------- -- -- ------- ------------ -- ------ ----------- -- -- - -- ------- ------------ -- ------ ----------- -- -- - -- ------- ------------ -- ------ ----------- -- -- - -- ------- ----------- -- ------- --------- -------- -- --
3. String.prototype.replaceAll()
String.prototype.replaceAll() 允许您使用新的字符串替换所有匹配的字符串。相比于 String.prototype.replace() ,它不仅仅替换第一个匹配项,而是替换所有匹配项。
----- ------ - ------- ----- ----- --- --- ------ ------------------------------------- --------- -- ----- ------- ----- ----- --- --- -----
4. 数字分隔符
JavaScript 现在允许在数字文字中包含下划线,这有助于数字更易于阅读和理解。
----- --------- - -------------- ----------------------- -- ----- ----------
5. WeakRefs
WeakRefs(弱引用)允许开发人员在无法向应用程序添加内存压力的情况下对对象进行跟踪。它们可用于引用已释放内存中的对象。
以下是一个简单的例子:
--- -------- - - ----- ------ -- ----- --------- - --- ------------------ -------- - ----- ------------- -- - ------------------------------- -- ------ -- ----- -----------
结论
我们已经浏览了 ES12 中的一些令人兴奋的新特性,这些特性可以让开发人员更轻松地编写可读性更高的代码。使用这些新功能可以将您的代码的可维护性提高到一个新的水平,并且它们与以前的代码兼容性很好。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6731d5ee0bc820c5823ab310