BigInt

Les primitives BigInt constituent un ajout relativement récent JavaScript, qui permet d'effectuer des opérations mathématiques sur des nombres hors de la plage autorisé par Number. Pour créer une instance BigInt, ajoutez n à la fin d'un nombre littérale, ou transmettre une valeur de chaîne entière ou 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ée en toute sécurité par Number, ce qui entraîne une erreur d'arrondi.

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

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

Pour effectuer des opérations arithmétiques avec BigInt, 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