使用 ES11 中的 BigInt 原始类型

阅读时长 3 分钟读完

最近,JavaScript 的新版本 - ES11 增加了一个新的原始类型 BigInt,它可以用来表示任意大的整数。

在过去,以前的 JavaScript 版本只有 Number 类型表示数字,但在处理超出安全有效值范围的数字时会出现精度问题。BigInt 的出现解决了这个问题,BigInt 允许我们安全地处理比 Number 类型更大的数字。

使用 BigInt

BigInt 是大于 2<sup>53-1</sup> 的整数值。如果勉强在 Number 中处理大于这个范围的数字,将会失去精度并输出不准确的结果。这时你可以使用 BigInt 类型处理大数字,它的后缀为 n。例如:

记住,任何缺少 n 后缀的数字字面量都将被解释为 Number 类型。

注意,在使用 BigInt 时,应该特别关注将其应用在有限的问题上,因为这种数据类型比 Number 类型复杂得多,需要更多的内存和处理时间。

BigInt 与普通值的比较

从技术上讲,BigInt 与常规的 JavaScript 变量不同,它们在内部处理接口上也不同。因此,当比较不同类型的值时,我们需要遵循一些规则。

例如:

在这个例子中,用 == 进行比较,BigInt 与 Number 都算可行。如果用 === 来进行比较,则会得到不相等的结果。因此,开发人员应该谨慎选择适当的比较操作符。

BigInt 的运算

BigInt 支持基本数学运算,例如 +、-、*、/、% 等。当使用这些运算符时,BigInt 会自动进行类型转换。

与其他 JavaScript 值不同,BigInt 还支持一些额外的运算,例如位运算符。例如:

实际上,BigInt 运算中的位运算符并不多见,但它们对于一些高级算法来说是必不可少的。

示例

现在我们来看一个例子,在这个例子中,我们将演示如何使用 BigInt 处理更大的数字。

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

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

这个函数计算一个很大的数字的阶乘,使用 BigInt 数据类型相当直接,无需转换或处理。如我们所见,BigInt 允许我们在 JavaScript 环境中处理更具有挑战性的计算,这是以前很难实现的。

总结

在这篇文章中,我们介绍了 ES11 中的 BigInt 数据类型。我们观察了它为大型数字提供安全和可靠计算的潜力,并演示了 BigInt 实际用例的示例。

在使用 BigInt 时,应该特别小心。虽然 BigInt 看起来并不比其他原始类型更难,但它们具有不同的运算和操作。务必要小心处理大型数字,总是谨慎行事。

这是一个新的、强大的功能,可以提高 JavaScript 的整体能力和可移植性。我们期待未来看到此功能用于创建更好的、更可靠的代码。

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

纠错
反馈