在 JavaScript 中,数字一直是一个非常重要的类型,但是它有一个限制:它只能表示 2 的 53 次方以内的整数。这意味着在处理非常大的数字时,JavaScript 无法提供足够的精度。为了解决这个问题,ES2020 引入了一个新的数据类型:BigInt。
BigInt 是什么?
BigInt 是一个可以表示任意大整数的 JavaScript 数据类型。它可以用来处理超出 JavaScript Number 类型范围的数字,例如超过 2 的 53 次方的整数。BigInt 可以表示任意大小的整数,只受内存限制。
如何创建 BigInt?
要创建一个 BigInt,只需在数字后面添加一个 n。例如:
const bigNumber = 1234567890123456789012345678901234567890n;
BigInts 和数字的区别是什么?
BigInts 和数字的区别在于它们的内部表示方式。数字使用 IEEE 754 标准来表示,而 BigInts 则使用一种更为简单的方式。这意味着 BigInts 不会丢失精度,但是它们也没有数字类型的一些特性,例如支持位运算。
如何进行 BigInt 运算?
BigInt 可以执行所有基本算术运算,例如加法、减法、乘法和除法。要执行这些运算,只需像普通数字一样使用运算符即可。
const bigNumber1 = 1234567890123456789012345678901234567890n; const bigNumber2 = 9876543210987654321098765432109876543210n; const sum = bigNumber1 + bigNumber2; const difference = bigNumber2 - bigNumber1; const product = bigNumber1 * bigNumber2; const quotient = bigNumber2 / bigNumber1;
BigInts 和字符串的相互转换
我们可以使用 BigInt() 函数将字符串转换为 BigInt,也可以使用 toString() 函数将 BigInt 转换为字符串。
const bigNumber = BigInt("1234567890123456789012345678901234567890"); const stringNumber = bigNumber.toString();
BigInts 和数字的相互转换
我们可以使用 Number() 函数将 BigInt 转换为数字,但是需要注意的是如果 BigInt 超出了 Number 类型的范围,将会返回 Infinity。
const bigNumber = 1234567890123456789012345678901234567890n; const number = Number(bigNumber); // Infinity
总结
BigInt 是一个非常有用的 JavaScript 数据类型,它提供了一种处理超出数字类型范围的数字的方法。虽然 BigInts 和数字之间的转换可能有些限制,但是 BigInts 可以在处理大型数字时提供更高的精度。
示例代码
下面是一个使用 BigInt 计算斐波那契数列的示例代码:
-- -------------------- ---- ------- -------- ------------ - --- --- -- - ---- ---- ----- ---- - -- - --- -- - --- - - --- - ------ -- - ---------------------------- -- ----------------------
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66137f09d10417a2223eec58