ES11:如何用 BigInt 处理大数字?

在前端开发中,有时需要处理特别大的数字。但是,由于 JavaScript 对数字的表示范围有限,导致大数字的计算很容易出错。在 ES11 中,新增了 BigInt 类型,可以用来处理超出 Number 类型范围的整数。

BigInt 简介

BigInt 是一种新的 JavaScript 内置对象,用来表示整数。它可以处理大于 2 的 53 次方减 1 的整数,即 Number.MAX_SAFE_INTEGER。而对于更大的整数,则需要使用 BigInt。

BigInt 的表示方式是在数字后面加上 n,如:

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

注意,BigInt 类型只能表示整数,不能包含小数部分和指数部分。

BigInt 的运算

BigInt 类型支持加、减、乘、除、取模等基本运算。与 Number 类型不同的是,BigInt 类型的运算符号是双斜杠(//)代替单斜杠(/)进行除法运算。

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

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

BigInt 和普通数字的转换

由于 BigInt 和普通数字是不同的类型,不能直接进行运算。但是可以通过 BigInt() 和 Number() 方法进行转换。

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

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

BigInt 和字符串的互相转换

BigInt 可以直接使用字符串进行赋值,并且也可以将 BigInt 转化成字符串。

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

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

注意事项

  1. 由于 BigInt 是 ES11 引入的新特性,旧版浏览器可能不支持该类型,需要进行传统计算方式的处理。
  2. BigInt 不支持小数运算,必须使用整数类型。
  3. BigInt 类型不能用于位运算。

总结

BigInt 类型是 JavaScript 中一个新增的数据类型,用于处理超出 Number 类型的整数,可以更好的解决大数字的计算问题,使我们的代码更加健壮和可靠。但是需要注意其兼容性和限制,合理使用 BigInt 可以将代码效率和可读性提高到一个新的高度。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6648d0cbd3423812e47833de