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