在 JavaScript 中,数字传统上使用 Number 类型表示,该类型遵循双精度浮点运算的 IEEE 754 标准。这种表示虽然用途广泛,但有一个限制:它只能安全地表示最多 (2^{53} - 1)(或 (9,007,199,254,740,991))的整数。对于需要更大整数的应用程序,JavaScript 通过 BigInt 类型引入了解决方案。
BigInt 是 JavaScript 中的内置对象,它提供了一种表示大于 Number 类型可以处理的整数的方法。与 Number 不同,Number 适合浮点运算,并且可以处理大约(-1.8 乘以 10^{308})到(1.8 乘以 10^{308})之间的值,BigInt 是专门为任意精度整数运算而设计的。 🎜>
创建 BigInt 值
const bigIntValue = BigInt(123456789012345678901234567890);请注意,BigInt 接受字符串和数字,但使用数字时,它们应该在 Number 类型的范围内。
const bigIntLiteral = 123456789012345678901234567890n;这是直接定义 BigInt 值的更简洁的方法。
使用 BigInt 进行操作
const a = 10n; const b = 20n; const sum = a + b; // 30n
const difference = b - a; // 10n
const product = a * b; // 200n
const quotient = b / 3n; // 6n (Note: Division results in a `BigInt` which is truncated towards zero)
const remainder = b % 3n; // 2n
const power = a ** 3n; // 1000n比较和平等
const a = 10n; const b = 10; console.log(a == b); // false console.log(a === BigInt(b)); // trueBigInt 和数字之间的转换
const bigIntValue = 123n; const numberValue = Number(bigIntValue);注意:如果 BigInt 值太大,这可能会丢失精度。
const numberValue = 123; const bigIntValue = BigInt(numberValue);限制和注意事项
const a = 10n; const b = 5; // The following line will throw a TypeError const result = a + b;
const bigIntValue = 123n; JSON.stringify(bigIntValue); // Throws TypeError要处理 JSON 中的 BigInt,您可能需要先将其转换为字符串:
const bigIntValue = 123n; const jsonString = JSON.stringify({ value: bigIntValue.toString() });
以上是理解 JavaScript 中的 BigInt的详细内容。更多信息请关注PHP中文网其他相关文章!