在 ECMAScript 2021 (ES12) 中,我们迎来了 BigInt 类型的引入。BigInt 类型用于表示任意精度的整数,解决了 JavaScript 中 Number 类型不能精确表示超出 253 - 1 的整数的问题。
为什么需要 BigInt?
在 ES11 之前,JavaScript 中的 Number 类型是基于 64 位浮点数实现的。这意味着它可以表示的最大整数是 253 - 1(即 9007199254740991)。如果我们需要处理超出这一范围的整数,就需要借助第三方库或者使用字符串来代替原生的 Number 类型。
例如:
const num = 99999999999999999999999999999999999999999999999999n; console.log(num); // 99999999999999999999999999999999999999999999999999n
这里的 n
表示一个 BigInt 类型的字面量。通过加上 n
,我们就可以直接使用 BigInt 类型来表示超出 253 - 1 范围的整数了。
BigInt 支持的操作
BigInt 类型支持以下操作:
基本操作
+
、-
、*
、/
:支持基本的加、减、乘、除操作;%
:支持取余操作;**
:支持幂运算;+n
、-n
:支持正负符号操作。
比较操作
<
、>
、<=
、>=
、==
、!=
、===
、!==
:支持基本的比较操作。
位操作
<<
、>>
、>>>
:支持左移、右移和无符号右移操作;&
、|
、^
:支持按位与、按位或和按位异或操作;~
:支持按位非操作。
类型转换
BigInt(value)
:将指定的值转换为 BigInt 类型;BigInt.toString()
:将 BigInt 类型转换为字符串。
BigInt 的示例代码
接下来,让我们看一下使用 BigInt 类型的示例代码:
-- -------------------- ---- ------- ----- ---- - ---------------------------------------------------- -- ---- ------ ---- ----- ---- - -------------- -- -- ------ -------- ------ -- ----- ---- - ------------ -- -- ------ --- ------ ---- ------ -- ------------------ -- --------------------------------------------------- ------------------ -- ---- ------------------ -- ---- -- ----------------------- ---------------- - ------ -- ---------------------------------------------------- ---------------- - ------ -- --------------------------------------------------- ---------------- - ------ -- ---------------------------------------------------- ---------------- - ------ -- ---------------------------------------------------- ---------------- - ------ -- ---- ---------------- -- ------ -- -------- ----------- --------- -- ------- ------------------- -- ----- ------------------- -- ---- -- ------ ---------------- - ------ -- ----- ---------------- - ------ -- ---- ---------------- --- ------ -- ----- -- ----- ----- ---- - -------- ----- ---- - -------- ---------------- - ------ -- ------- ---------------- - ------ -- ------- ---------------- - ------ -- ------- ------------------- -- -------- ---------------- -- ---- -- -------- ---------------- -- ---- -- ------ ---------------- --- ---- -- ------ -- ------ ----- ---- - ------------- ----------------------------- -- ------ -------------------------------------------------------- -- ------------------
总结
ECMAScript 2021 引入了 BigInt 类型,用于解决 JavaScript 中无法精确表示超出 253 - 1 范围的整数的问题。BigInt 类型支持基本运算、比较运算、位运算、类型转换等常见操作,使用起来非常便利。如果我们需要处理超大数值的运算,不妨考虑使用 BigInt 类型。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fa8064f6b2d6eab3170466