Le primitive BigInt sono un'aggiunta relativamente nuova a JavaScript, consentendo operazioni matematiche su numeri al di fuori dell'intervallo consentito da Number
. Per creare un valore BigInt, aggiungi n
alla fine di un numero letterale
oppure trasmetti un valore stringa numero intero o numerico alla funzione BigInt()
.
const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;
typeof myNumber;
> "number"
typeof myBigInt;
> "bigint"
myNumber;
> 10000000000000000
myBigInt;
> 9999999999999999n
In questo esempio, 9999999999999999
non rientra nell'intervallo di cifre che può essere rappresentato in modo sicuro da Number
, causando un errore di arrotondamento.
I valori BigInt non ereditano i metodi e le proprietà forniti dall'oggetto Number
e non possono essere utilizzati con i metodi forniti dall'oggetto Math
integrato di JavaScript. Inoltre, non puoi combinare le primitive BigInt e Number nelle operazioni aritmetiche standard:
9999999999999999n + 5
> Uncaught TypeError: can't convert BigInt to number
Per eseguire aritmetici con BigInt, devi definire entrambi gli operandi come valori BigInt:
console.log( 9999999999999999 + 10 ); // Off by one
> 10000000000000010
console.log( 9999999999999999n + 10n );
> 10000000000000009n