ECMAScript 2021 (ES12) 中的 BigInt 类型详解

阅读时长 5 分钟读完

在 ECMAScript 2021 (ES12) 中,我们迎来了 BigInt 类型的引入。BigInt 类型用于表示任意精度的整数,解决了 JavaScript 中 Number 类型不能精确表示超出 253 - 1 的整数的问题。

为什么需要 BigInt?

在 ES11 之前,JavaScript 中的 Number 类型是基于 64 位浮点数实现的。这意味着它可以表示的最大整数是 253 - 1(即 9007199254740991)。如果我们需要处理超出这一范围的整数,就需要借助第三方库或者使用字符串来代替原生的 Number 类型。

例如:

这里的 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

纠错
反馈