BigInt 是 JavaScript 用于安全表示任意精度整数的原始类型,以 n 结尾(如 123n),支持算术与比较操作,但不可与 Number 混合运算,需显式转换。
JavaScript 的 BigInt 是一种内置原始类型,专门用来安全地表示和运算任意精度的整数——也就是比 Number 类型能表示的最大安全整数(2⁵³ − 1)还要大的整数。
n 表示大整数创建 BigInt 最直接的方式是在整数字面量末尾加一个字母 n:
123n 是一个 BigInt,而 123 是普通 number9007199254740992n 精确表示该值,不会像 9007199254740992 那样在 Number 中因精度丢失变成 9007199254740992(看似一样,但再加 1 就出问题)1.5n、❌ 1e5n;只能是整数加 n
它可以做加(+)、减(-)、乘(*)、除(/)、取余(%)、幂(**)等运算,结果仍是 BigInt:
100n + 50n === 150n2n ** 64n 得到精确的 2⁶⁴(18446744073709551616n)=== 可以比较两个 BigInt,但 == 会报错(因为 BigInt 和 Number 不可隐式转换)、>)允许与 Number 混用,如 100n > 99 返回 true
这是关键限制:你不能直接把 BigInt 和普通数字相加、相乘等,否则会抛出 TypeError:
10n + 5 → 报错10n + BigInt(5) 或 Number(10n) + 5(但后者可能丢失精度)Number(123456789012345678901234567890n) 会四舍五入成近似值,不再精确BigInt 主要用在需要高精度整
数计算的地方:
Date.now() 范围)基本上就这些。BigInt 不复杂但容易忽略类型隔离规则——记住加 n、别混用、转换要小心,就能稳稳处理超大整数。