在 JavaScript 中,整数的范围是有限的。在过去,我们通过使用一些库或者自己实现的一些算法来处理大整数。但是,自从 ECMAScript 2019 引入了 BigInt,我们可以在原生 JavaScript 中轻松地处理大整数了。
什么是 BigInt
BigInt 是一种新的 JavaScript 基本类型,它可以表示任意精度的整数。它的范围比 Number 类型要大得多,可以处理比 JavaScript 原生整数范围更大的整数。
BigInt 是通过在整数值后面加上 n 或者使用 BigInt() 构造函数来创建的。例如:
const big1 = 123456789012345678901234567890n; const big2 = BigInt("123456789012345678901234567890");
如何使用 BigInt
BigInt 和 Number 有一些不同之处。它们之间不能进行混合运算,也不能直接比较大小。因此,我们需要使用 BigInt 提供的一些方法来进行运算和比较。
运算符
BigInt 支持大部分的运算符,如加减乘除、求余数、左右移位等。但是,它们的运算符和 Number 不同,要注意使用。例如:
-- -------------------- ---- ------- ----- ---- - -------------------------------- ----- ---- - -------------------------------- ---------------- - ------ -- -------------------------------- ---------------- - ------ -- -------------------------------- ---------------- - ------ -- ------------------------------------------------------------ ---------------- - ------ -- -- ---------------- - ------ -- ------------------------------- ---------------- -- --- -- ------------------------------- ---------------- -- --- -- ------------------------------
方法
BigInt 也提供了一些方法来进行运算和比较。例如:
-- -------------------- ---- ------- ----- ---- - -------------------------------- ----- ---- - -------------------------------- ---------------------------- -- -------------------------------- --------------------------------- -- -------------------------------- --------------------------------- -- ------------------------------------------------------------ ------------------------------- -- -- ---------------------------------- -- ------------------------------- ------------------------------- -- ------------------------------- -------------------------------- -- ------------------------------ -------------------------------- -- --
示例代码
下面是一个使用 BigInt 计算斐波那契数列的例子:
-- -------------------- ---- ------- -------- ------------ - --- - - --- - - --- --- ---- - - --- - - -- ---- - --- -- - --- - - --- - ------ -- - ---------------------------- -- ----------------------
总结
通过 BigInt,我们可以轻松地处理大整数,而无需使用第三方库或者自己实现算法。但是,要注意 BigInt 和 Number 的不同之处,使用正确的方法和运算符来处理 BigInt。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/657d0f74d2f5e1655d7dadb0