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