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 方法搭配使用 物件提供的物件最重要的是,在 BigQuery 中 標準算術運算:

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

如要使用 BigInts 進行算術,您必須將兩個運算元定義為 BigInt 值:

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

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