在 JavaScript 中,数字类型是基本数据类型之一,但是在进行大整数运算时,会存在精度不够的问题。为了解决这一问题,ES2020 引入了 BigInt 类型,可以支持任意精度的整数运算。本文将介绍如何使用 BigInt 进行数字运算。
BigInt 的基本使用
BigInt 类型是在 JavaScript 中新增的一种类型,用于表示任意精度的整数。与 Number 类型不同,BigInt 类型可以表示比 Number 类型更大的整数,例如:
const max = Number.MAX_SAFE_INTEGER; console.log(max + 1); // 9007199254740992 console.log(max + 2); // 9007199254740992 console.log(BigInt(max) + 1n); // 9007199254740993n console.log(BigInt(max) + 2n); // 9007199254740994n
在上面的代码中,Number.MAX_SAFE_INTEGER
是 JavaScript 中能够精确表示的最大整数,它的值为 9007199254740991
,当我们对它进行加 1 或者加 2 操作时,由于 Number 类型的精度限制,其结果不再是正确的值。而使用 BigInt 类型,则可以正常得到正确的结果。
BigInt 类型的字面量表示方式为在整数后面添加 n
,例如 1234n
表示 BigInt 类型的整数 1234。
BigInt 的运算操作
BigInt 类型支持与 Number 类型的运算,但是不能与其他类型进行运算。在 BigInt 类型中,支持的运算操作包括:
- 加法:
+
- 减法:
-
- 乘法:
*
- 除法:
/
- 模运算:
%
- 指数运算:
**
- 比较运算:
<
、<=
、>
、>=
、==
、!=
、===
、!==
例如,我们可以使用 BigInt 类型进行如下运算:
-- -------------------- ---- ------- ----- - - -------------------------------- ----- - - -------------------------------- ------------- - --- -- -------------------------------- ------------- - --- -- -------------------------------- ------------- - --- -- --------------------------------------------------------------------- ------------- - --- -- -- ------------- - --- -- ------------------------------- ------------- -- ---- -- ------------------------------------------------------ ------------- - --- -- ----- ------------- - --- -- ---- ------------- -- --- -- ----- ------------- -- --- -- ----
BigInt 的注意事项
在使用 BigInt 类型时,需要注意以下几点:
- BigInt 类型不能与其他类型进行运算,需要显式地将其他类型转换为 BigInt 类型才能进行运算。
- BigInt 类型的字面量表示方式为在整数后面添加
n
,例如1234n
表示 BigInt 类型的整数 1234。 - 在进行运算时,需要使用 BigInt 类型的运算符,例如
+
、-
、*
、/
、%
、**
、<
、<=
、>
、>=
、==
、!=
、===
、!==
。 - BigInt 类型的变量可以使用普通的变量赋值方式进行赋值,例如
const a = 1234n;
。 - BigInt 类型的变量可以使用普通的变量名进行操作,例如
a + b
、a++
等。 - BigInt 类型的变量不能使用
Math
对象中的方法,例如Math.abs()
、Math.floor()
等。
示例代码
以下是使用 BigInt 进行数字运算的示例代码:
-- -------------------- ---- ------- -- -- ----- - - -------------------------------- ----- - - -------------------------------- ----- - - - - -- --------------- -- -------------------------------- -- -- ----- - - - - -- --------------- -- -------------------------------- -- -- ----- - - - - -- --------------- -- --------------------------------------------------------------------- -- -- ----- - - - - -- --------------- -- -- -- --- ----- - - - - -- --------------- -- ------------------------------- -- ---- ----- - - - -- --- --------------- -- ------------------------------------------------------ -- ---- ----- - - - - -- --------------- -- ----- ----- - - - - -- --------------- -- ---- ----- - - - -- -- --------------- -- ----- ----- - - - -- -- --------------- -- ----
总结
ES2020 引入了 BigInt 类型,可以支持任意精度的整数运算。在进行数字运算时,如果存在精度不够的问题,可以考虑使用 BigInt 类型来解决。在使用 BigInt 类型时,需要注意其基本使用方法和注意事项。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c5d633add4f0e0ff05e6d6