导读:本期聚焦于小伙伴创作的《如何利用JavaScript的新增数据类型BigInt进行大整数运算?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何利用JavaScript的新增数据类型BigInt进行大整数运算?》有用,将其分享出去将是对创作者最好的鼓励。

在JavaScript里,Number类型基于IEEE 754双精度浮点格式,只能精确表达 -(2^53 - 1) 到 2^53 - 1 之间的整数。当业务中出现更大的整数,比如分布式ID、加密运算结果时,普通数值类型会发生截断。BigInt作为语言原生新增的数据类型,能够表示任意大小的整数,从而让大整数运算不再依赖第三方库。

如何利用JavaScript的新增数据类型BigInt进行大整数运算?

BigInt的创建方式

创建BigInt有两种常见写法。一种是在整数字面量后面直接加字母 n,另一种是使用内置的 BigInt() 函数进行转换。

// 字面量方式
const a = 123456789012345678901234567890n;

// 函数方式
const b = BigInt('987654321098765432109876543210');

console.log(a + b); // 1111111110111111111011111111100n

BigInt支持的基础运算

BigInt可以使用加、减、乘、除、取模等运算符,但不能与Number直接混合运算,否则会抛出类型错误。

  • 加法运算:使用 + 符号
  • 除法运算:结果会自动向下取整,没有小数部分
  • 比较运算:BigInt与Number可以比较大小,不会报错
const x = 10n;
const y = 3n;

console.log(x + y); // 13n
console.log(x - y); // 7n
console.log(x * y); // 30n
console.log(x / y); // 3n,不是3.333...
console.log(x % y); // 1n

console.log(10n === 10); // false,类型不同
console.log(10n == 10);  // true,值相等
console.log(10n > 5);    // true,可与Number比较

类型转换与注意事项

BigInt不能用于 Math 对象的方法,也不能和 Number 直接做加减。需要显式转换时,可用 Number() 把BigInt变回普通数字,但这可能丢失精度,只建议在确认数值安全时使用。

场景处理方式
BigInt转NumberNumber(bigIntVal),大数会失真
Number转BigIntBigInt(numVal),小数会报错
JSON序列化默认不支持,需要自定义replacer

JSON处理示例

const data = { id: 9007199254740993n };

const json = JSON.stringify(data, (key, value) =>
  typeof value === 'bigint' ? value.toString() : value
);

console.log(json); // {"id":"9007199254740993"}

实际运算例子

下面演示用BigInt计算两个超大整数的乘积,验证其精度保持完整。

const big1 = 123456789012345678901234567890n;
const big2 = 987654321098765432109876543210n;

const product = big1 * big2;

console.log(product);
// 12193263113702179522618503244526978042196579645239274630n

小结

BigInt让JavaScript原生具备大整数运算能力。开发时记住它不能与Number隐式混算,且JSON原生不支持。在订单、加密、计数等需要精确大数的地方,合理使用BigInt可以有效避免精度隐患。

JavaScriptBigInt大整数运算修改时间:2026-07-30 21:36:19

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。