ES11 之 BigInt 和 Number 转换

阅读时长 4 分钟读完

ES11 引入了一种新的数字类型:BigInt,用于表示超出 JS Number 范围的整数。而对于超出 JS Number 范围的数字,我们通常需要进行 BigInt 和 Number 的相互转换。在本文中,我们将详细介绍 BigInt 和 Number 的转换方式,以及它们的使用方法和指导意义。

BigInt 类型

BigInt 类型用于表示任意精度的整数,可用来处理大数字的计算。和 JS Number 类型不同的是,BigInt 类型没有上限,可以表示任意大的整数。BigInt 类型使用 n 作为后缀表示一个 BigInt 数字,例如:

BigInt 和 Number 的转换

由于 BigInt 是一种新的数字类型,因此我们可能需要将其转换为 JS 原生的 Number 类型以进行运算。同样地,对于超出 Number 范围的数字,我们也需要先将其转换为 BigInt 类型。

BigInt 转为 Number

将 BigInt 转为 Number 类型,可以使用 Number() 命令或 +'0n' 的方式,例如:

其中,通过在 BigInt 值前添加空字符,可以将其转换为字符串;再利用加号运算符将其转换为 Number 类型,这种方式通常比 Number() 转换方式更加高效。

Number 转为 BigInt

将 Number 转为 BigInt 类型,可以使用 BigInt() 命令或将数字值用 n 后缀包裹,例如:

注意,如果将一个超出 BigInt 范围的数字转换为 BigInt 类型,则会导致精度损失。

BigInt 的使用

BigInt 类型可以与 JS 常规数字类型进行运算,以及使用 +, -, *, /, %** 等运算符进行基本运算。BigInt 类型也可以使用包含 BigInt 的数组内部存在 BigInt 的运算和方法使用。

例如,下面的代码演示了 BigInt 的常见使用场景:

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

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

总结

在 ES11 中,BigInt 被用于表示超出 JS Number 范围的数字,可以更好地处理大数字的计算。在对超大整数进行运算和计算时,我们需要灵活使用 BigInt 和 Number 之间的转换方式。掌握 BigInt 和 Number 的转换方式及其使用,有助于我们更好地开发 JS 应用程序,并处理超大数字值的计算,提高应用程序的稳定性和性能。

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

纠错
反馈