BigInt 数据类型

JavaScript 中用于处理大整数的 BigInt 类型

问题

什么是 BigInt?

解答

BigInt 是 JavaScript 的一种数据类型,用于表示超出 Number 类型安全范围的整数。Number 类型的安全整数范围是 -(2^53 - 1)2^53 - 1,而 BigInt 可以表示任意大的整数。

创建 BigInt

// 方式1:在数字后面加 n
const bigInt1 = 9007199254740991n;

// 方式2:使用 BigInt() 构造函数
const bigInt2 = BigInt("9007199254740991");

// 方式3:从 Number 转换
const bigInt3 = BigInt(9007199254740991);

基本运算

const a = 9007199254740991n;
const b = 2n;

console.log(a + b); // 9007199254740993n
console.log(a - b); // 9007199254740989n
console.log(a * b); // 18014398509481982n
console.log(a / b); // 4503599627370495n (整除)

使用场景

// 高精度时间戳
const timestamp = BigInt(Date.now()) * 1000000n;

// 大整数 ID
const userId = 9007199254740992n;

// 精确计算
const largeNumber = 123456789012345678901234567890n;

关键点

  • BigInt 不能与 Number 直接混合运算,需要显式转换
  • BigInt 除法会向下取整,不保留小数部分
  • 不支持 Math 对象的方法,如 Math.sqrt()
  • 适用于大整数 ID、高精度时间戳、金融计算等场景