⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

JS BigInt 大整数

学习BigInt · 难度:入门 · +10XP

JavaScript BigInt 大整数详解

在 JavaScript 中,普通的 Number 类型使用 64 位浮点数存储,安全整数范围是 ±(253 - 1)。BigInt 可以表示任意大的整数,突破了这一限制。

创建 BigInt

有两种方式创建 BigInt:

  1. 在整数后面加字母 n
  2. 使用 BigInt() 构造函数
// 方式一:加 n 后缀
const big1 = 9007199254740991n;
const big2 = 123456789012345678901234567890n;
// 方式二:使用 BigInt 构造函数
const big3 = BigInt("12345678901234567890");
// 注意:BigInt 和 Number 不能混合运算(会报 TypeError)

BigInt 的算术运算

运算符示例说明
加法 +100n + 20n正常加法
减法 -100n - 20n正常减法
乘法 *100n * 2n正常乘法
除法 /100n / 3n向下取整(截断小数)
取余 %100n % 3n取余数
幂 **2n ** 1024n可以计算超大指数
const a = 100n;
const b = 3n;
console.log(a / b);  // 33n(注意:小数部分被截断!)
console.log(a % b);  // 1n
console.log(2n ** 100n); // 1267650600228229401496703205376n

BigInt 的比较和转换

BigInt 使用严格相等 === 时,和 Number 不是同一类型:

console.log(1n === 1);   // false(类型不同)
console.log(1n == 1);    // true(宽松比较会转换)
// 转换为 Number
const big = 12345n;
const num = Number(big);  // 12345(超出安全范围会丢失精度)

实际应用场景

  1. 金融计算:需要精确保留大数值,避免浮点数精度丢失
  2. 密码学:处理大素数、哈希值等超大整数
  3. 科学计算:天文数字、宇宙距离等超大数值
  4. 高精度时间戳:纳秒级时间计算
// 场景示例:使用 BigInt 处理超大 ID
const userIds = [
  123456789012345678n,
  987654321098765432n,
  111111111111111111n
];
const total = userIds.reduce((sum, id) => sum + id, 0n);
console.log("用户ID总和:", total);
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0