ES11 新特性解析:大整数 BigInt、可选链、Nullish Coalescing 运算符、Promises.allSettled()

在本文中,我们将讨论在 JavaScript 的最新版本 ES11 中引入的四个重要的新特性:大整数 BigInt、可选链、Nullish Coalescing 运算符和 Promises.allSettled()。这些新特性有很深的意义和实际应用场景,值得我们了解和掌握。

大整数 BigInt

BigInt 是一种新的基本数据类型,它可以表示任意大的整数,远超过 JavaScript 中的 Number 类型范围。BigInt 可以通过在数字后面添加一个 n 来创建,例如:const bigIntNumber = 123456789012345678901234567890n;

在 BigInt 中,所有 Number 中支持的操作都是不可用的,因此我们需要使用 BigInt 内置的一些操作符来进行运算。BigInt 也支持与 Number 类型的运算,但这种运算需要尽可能避免,因为当一个 BigInt 和一个 Number 进行加法或减法运算时,会将 BigInt 强制转换为 Number,因此可能会导致精度问题。

示例代码:

可选链

在 ES11 中,可选链是一个非常实用的特性。它可以帮助我们在遍历对象属性和方法时避免 TypeError 错误。以前,我们需要多次使用 if null 检查来防止访问 null 或 undefined 的内容。现在,可选链运算符 ?., 可以使这个过程更加优美。

例如,假设我们要获取一个对象的属性,但不确定对象是否存在,我们可以使用可选链来避免 TypeError 错误:

在上述示例中,我们使用可选链来遍历 obj 对象的 a、b、c 属性,而不必判断每个属性是否为 null 或 undefined。

Nullish Coalescing 运算符

Nullish Coalescing 运算符 ?? 是一个非常实用的特性,它可以让我们更好地处理 null 或 undefined 值。在以前,我们经常需要使用 || 运算符来检查 null 或 undefined 。

例如,假设我们要获取一个变量的值,如果变量不存在我们给一个默认值,我们可以使用 Nullish Coalescing 运算符,如下所示:

在上述示例中,当 variable 为 null 或 undefined 时,我们将它的值设置为 defaultValue。

与 || 运算符不同的是,Nullish Coalescing 运算符只在左侧值为 null 或 undefined 时才会返回右侧的默认值。

Promises.allSettled()

Promises.allSettled() 是 Promise API 中的一个新增方法。它返回一个 Promise,它在所有 Promise 状态都 settled(不管 Promise 的状态是 fulfilled 还是 rejected)时,才会 resolve。返回的结果是一个数组,每个数组元素包含 Promise 的状态和结果。

例如,假设我们有三个 Promise,在它们都 settled 后,我们想获取它们的状态和结果,我们可以使用 Promises.allSettled(),如下所示:

在上述示例中,p1 和 p3 状态为 fulfilled,返回结果为 1 和 3;p2 状态为 rejected,返回错误 'error'。

总结

在本文中,我们探讨了 ES11 中的四个重要新特性:BigInt、可选链、Nullish Coalescing 运算符和 Promises.allSettled()。这些特性在实际开发中经常用到,掌握这些特性对于编写高质量、高效的 JavaScript 代码非常重要。

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