ES2020 新特性:如何使用 BigInt 进行数字运算

阅读时长 5 分钟读完

在 JavaScript 中,数字类型是基本数据类型之一,但是在进行大整数运算时,会存在精度不够的问题。为了解决这一问题,ES2020 引入了 BigInt 类型,可以支持任意精度的整数运算。本文将介绍如何使用 BigInt 进行数字运算。

BigInt 的基本使用

BigInt 类型是在 JavaScript 中新增的一种类型,用于表示任意精度的整数。与 Number 类型不同,BigInt 类型可以表示比 Number 类型更大的整数,例如:

在上面的代码中,Number.MAX_SAFE_INTEGER 是 JavaScript 中能够精确表示的最大整数,它的值为 9007199254740991,当我们对它进行加 1 或者加 2 操作时,由于 Number 类型的精度限制,其结果不再是正确的值。而使用 BigInt 类型,则可以正常得到正确的结果。

BigInt 类型的字面量表示方式为在整数后面添加 n,例如 1234n 表示 BigInt 类型的整数 1234。

BigInt 的运算操作

BigInt 类型支持与 Number 类型的运算,但是不能与其他类型进行运算。在 BigInt 类型中,支持的运算操作包括:

  • 加法:+
  • 减法:-
  • 乘法:*
  • 除法:/
  • 模运算:%
  • 指数运算:**
  • 比较运算:<<=>>===!====!==

例如,我们可以使用 BigInt 类型进行如下运算:

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

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

BigInt 的注意事项

在使用 BigInt 类型时,需要注意以下几点:

  1. BigInt 类型不能与其他类型进行运算,需要显式地将其他类型转换为 BigInt 类型才能进行运算。
  2. BigInt 类型的字面量表示方式为在整数后面添加 n,例如 1234n 表示 BigInt 类型的整数 1234。
  3. 在进行运算时,需要使用 BigInt 类型的运算符,例如 +-*/%**<<=>>===!====!==
  4. BigInt 类型的变量可以使用普通的变量赋值方式进行赋值,例如 const a = 1234n;
  5. BigInt 类型的变量可以使用普通的变量名进行操作,例如 a + ba++ 等。
  6. BigInt 类型的变量不能使用 Math 对象中的方法,例如 Math.abs()Math.floor() 等。

示例代码

以下是使用 BigInt 进行数字运算的示例代码:

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

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

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

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

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

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

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

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

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

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

总结

ES2020 引入了 BigInt 类型,可以支持任意精度的整数运算。在进行数字运算时,如果存在精度不够的问题,可以考虑使用 BigInt 类型来解决。在使用 BigInt 类型时,需要注意其基本使用方法和注意事项。

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

纠错
反馈