面向未来:从 ES11 之 New Features 入门

阅读时长 4 分钟读完

ES11(也叫 ECMAScript 2020)是 JavaScript 的最新版本,于 2020 年 6 月发布。它增加了一些令人兴奋的新特性,本文将介绍其中一些。

1. BigInt

在 JavaScript 中,数字的精度受到了限制,即使是 Number.MAX_SAFE_INTEGER,也只能表示到 2^53-1。但是在某些情况下,我们需要更大的数字,例如在加密算法中。BigInt 就是为此而生的。

BigInt 是一个新的数字类型,可以表示任意大的整数。它使用 n 后缀来表示,例如 10n 表示 10 这个 BigInt。BigInt 可以与普通数字进行运算,但它们不能混合使用。例如:

2. Promise.allSettled

Promise.allSettled 是一个新的 Promise 方法,它返回一个 Promise,该 Promise 在所有给定的 Promise 都已经完成或拒绝后解决。与 Promise.all 不同的是,即使其中的某个 Promise 被拒绝,Promise.allSettled 也会在所有 Promise 完成后解决。例如:

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

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

3. 可选链操作符

可选链操作符是一种新的语法,用于简化访问嵌套对象的代码。在旧的 JavaScript 中,访问深层嵌套的对象时,需要使用多个 if 语句来检查每个对象是否存在。例如:

使用可选链操作符,可以将上面的代码简化为:

这样,如果某个属性不存在,代码也不会崩溃。

4. Nullish 合并运算符

Nullish 合并运算符是一种新的语法,用于处理 nullundefined 值。在旧的 JavaScript 中,通常使用或运算符 || 来提供默认值,例如:

但是,当 input 的值为 false0'' 等 falsy 值时,上面的代码会出现错误。Nullish 合并运算符 ?? 可以解决这个问题,它只在 input 的值为 nullundefined 时提供默认值。例如:

5. 动态 import()

动态 import() 是一种新的语法,用于在运行时加载模块。与静态 import 不同的是,动态 import() 返回一个 Promise,该 Promise 在模块加载完成后解决。例如:

结论

ES11 带来了一些令人兴奋的新特性,包括 BigInt、Promise.allSettled、可选链操作符、Nullish 合并运算符和动态 import()。这些特性可以让我们编写更简洁、更易读、更可靠的代码。如果你还没有开始使用它们,请尝试一下吧!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67664d0276af2b9a20f59354

纠错
反馈