BigInt

Les primitives BigInt sont un ajout relativement récent de JavaScript, permettant des opérations mathématiques sur des nombres non compris dans la plage autorisée par Number. Pour créer une valeur BigInt, ajoutez n à la fin d'un littéral de nombre, ou transmettez une valeur d'entier ou de chaîne numérique à la fonction BigInt().

const myNumber = 9999999999999999;
const myBigInt = 9999999999999999n;

typeof myNumber;
> "number"

typeof myBigInt;
> "bigint"

myNumber;
> 10000000000000000

myBigInt;
> 9999999999999999n

Dans cet exemple, 9999999999999999 ne se trouve pas dans la plage de chiffres pouvant être représentés de manière sécurisée par Number, ce qui entraîne une erreur d'arrondi.

Les valeurs BigInt n'héritent pas des méthodes et propriétés fournies par l'objet Number fourni. Elles ne peuvent pas non plus être utilisées avec les méthodes fournies par l'objet Math intégré de JavaScript. Plus important encore, vous ne pouvez pas mélanger les primitives BigInt et Number dans des opérations arithmétiques standards:

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

Pour effectuer des opérations arithmétiques avec BigInts, vous devez définir les deux opérandes en tant que valeurs BigInt:

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

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