通八洲科技

JavaScript中的bigint类型是什么_它如何表示大整数

日期:2026-01-01 00:00 / 作者:夢幻星辰
BigInt 是 JavaScript 中用于安全处理任意精度整数的原始类型,解决 Number 类型因 IEEE 754 限制导致的大整数精度丢失问题;需用 n 后缀或 BigInt() 创建,不与 Number 混合运算,且存在 JSON 序列化、Math 方法兼容性等限制。

BigInt 是 JavaScript 中专门用于表示任意精度整数的原始类型,它能安全处理超出 Number.MAX_SAFE_INTEGER(即 9007199254740991)范围的大整数,避免精度丢失。

为什么不能直接用 Number 表示大整数

JavaScript 的 Number 类型基于 IEEE 754 双精度浮点数,只能精确表示 ≤ 2^53 - 1 的整数。超过该值后,连续整数无法被唯一表示:

console.log(9007199254740991 === 9007199254740992); // false
console.log(9007199254740992 === 9007199254740993); // true ← 精度已丢失

这种隐式舍入对金融计算、密码学、大 ID 处理等场景是不可接受的。

如何创建和使用 BigInt

必须通过字面量后缀 n 或构造函数 BigInt() 创建;二者行为不同,需注意:

BigInt 的运算与兼容性限制

支持常规算术运算(+-***%)、位运算(&| 等),但不支持 / 的小数结果(除法自动向下取整):

console.log(5n / 2n); // 2n ← 不是 2.5n

关键限制包括:

真正要用好 BigInt,得时刻记住它和 Number 是隔离的类型系统——不是“升级版数字”,而是另一套整数语义;传参、序列化、跨环境交互时,类型边界比想象中更硬。