BigInt用于处理超大整数,解决Number类型精度丢失问题;通过末尾加n或BigInt()创建,支持高精度运算但不可与Number直接混合计算,需显式转换,适用于大ID、加密、金融等场景。

JavaScript中的BigInt类型专门用来处理超出Number类型安全范围的大整数,解决了以往大整数精度丢失的问题。在ES2020之前,JavaScript的Number类型基于IEEE 754标准,只能安全表示-2⁵³ + 1到2⁵³ - 1之间的数值(即Number.MIN_SAFE_INTEGER到Number.MAX_SAFE_INTEGER)。超过这个范围的整数运算容易出现舍入误差。
BigInt的基本用法
BigInt通过在整数末尾加n或调用构造函数创建:
- 字面量形式:
const bigNum = 1234567890123456789012345678901234567890n; - 构造函数形式:
const bigNum = BigInt("1234567890123456789012345678901234567890");
创建后可以进行加、减、乘、除、取余、幂等数学运算,且不会丢失精度。
与Number类型的区别和限制
不能与Number混用运算:例如10 + 10n会抛出错误。必须显式转换:
立即学习“Java免费学习笔记(深入)”;
- 将
Number转为BigInt:BigInt(10) + 10n - 将
BigInt转为Number:Number(10n) + 10(注意值过大可能溢出)
不支持小数:BigInt(1.5)会报错,只接受整数。
实际应用场景
BigInt适用于需要高精度整数的场景:
- 处理数据库中大型ID(如Twitter Snowflake ID)
- 加密算法中的大数运算
- 金融计算中避免浮点误差(配合固定小数位模拟)
- 时间戳扩展(纳秒级精度或远未来时间)
基本上就这些。BigInt填补了JavaScript在大整数运算上的空白,虽然使用时需注意类型隔离问题,但合理运用能有效保障大数值计算的准确性。










