BigInt

BigInt 基元是对 API 的相对新增 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