了解 ES11: 新特性、修复问题和学习资源

ES11 (也被称为 ES2020) 是 ECMAScript (即 JavaScript) 的最新版本,已经被发布了。它包含了许多新的特性和修复了一些历史性的问题。在这篇文章中,我们将详细探讨 ES11 的新特性、修复的问题以及相关的学习资源。

新特性

可选链 (Optional Chaining)

这个新特性可以让开发者在访问深层嵌套对象时,不必进行繁琐的检查,从而显著降低代码的冗余和繁杂度。以下是一个示例代码:

----- ---- - -
  ----- -------
  -------- -
    ----- ---- ------
    -------- --------
  -
--

----- ------ - ----------------------
-------------------- -- ---------

我们可以看到,如果 addressstreet 不存在,我们的代码不会出错,返回结果会直接是 undefined

空值合并操作符 (Nullish Coalescing Operator)

我们经常需要设置默认值,来规避因为某些变量或对象不确定造成的错误。同样的代码可能会出现如下两种写法:

----- ------------ - --------- -- -----------

----- ------------ - --------- -- -----------

在原来的写法中,something 必须是一个真值才会进入后面的操作。而使用新的空值合并操作符,只有当 somethingnullundefined 时才会使用默认值。这样就能规避因为空值而带来的限制,不会因为 something 不是一个真值而原因照成问题。

动态 Import

ES11 允许我们在运行时动态导入模块,这是一个巨大的改进。如下是示例代码:

----- ------ - ----- ----------------------------

使用这种新特性可以让我们在需要时才加载组件,可以更加有效地提高整个系统的性能。

修复的问题

Promise.allSettled()

在 ES10 之前,Promise.all() 的缺陷使得当 Promise 数组有一个 Promise 被 rejected 的时候,所有 Promise 的处理就会中断,这给很多开发者造成了困扰。

ES11 新引入的 Promise.allSettled() 方法可以让我们继续对所有 Promise 进行处理,而不会造成处理的中断,这样就可以避免出现不可预测的问题。

可让 catch() method 接受 null and undefined 参数

在 ES10 之前,Promise 的 catch() 方法只能接收字符串作为参数,如果传入非字符串类型的参数,就会抛出错误。

ES11 新特性 catch() 方法可以接受任何类型的信息,包括 nullundefined,这样就能使我们的代码更加清晰优美。

学习资源

如何学习 ES11?

教程

这里也有一些推荐教程:

社区资源

以下是一些社区资源:

实践输入

最好的学习方法是持续练习和探索,如果没有任何项目来进行实践训练,您可以为开源项目做贡献。以下是一些开源项目:

结论

ES11 带来了新的特性和解决了之前的问题,这样可以使我们的代码更加优雅和简明。现在的重点是开始学习和尝试这些新的特性,这样就可以更好的在日常的开发工作中使用这些新特性,从而提高我们的工作效率。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67174490ad1e889fe220938c