BigInt

BigInt 原始值是 JavaScript 中相对较新的补充,允许对超出 Number 允许范围的数字执行数学运算。要创建 BigInt,请在数字字面量的末尾附加 n,或将整数或数字字符串值传递给 BigInt() 函数。

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

在此示例中,9999999999999999 超出了 Number 可以安全表示的数字范围,从而导致舍入错误。

BigInt 值不继承 Number 对象提供的方法和属性,并且不能与 JavaScript 内置 Math 对象提供的方法一起使用。最重要的是,您不能在标准算术运算中混合使用 BigInt 和 Number 原始值

9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number

要使用 BigInt 进行算术运算,您必须将两个操作数都定义为 BigInt 值

console.log( 9999999999999999 + 10 );  // Off by one
> 10000000000000010

console.log( 9999999999999999n + 10n );
> 10000000000000009n