BigInt

BigInt primitives are a relatively new addition to JavaScript, allowing mathematical operations on numbers outside the range allowed by Number. To create a BigInt, append n to the end of a number literal, or pass an integer or numeric string value to the BigInt() function.

const myNumber = 9999999999999999; const myBigInt = 9999999999999999n; typeof myNumber; > "number" typeof myBigInt; > "bigint" myNumber; > 10000000000000000 myBigInt; > 9999999999999999n 

In this example, 9999999999999999 is outside the range of digits that can be safely represented by Number, causing a rounding error.

BigInt values don't inherit the methods and properties by the Number object provides, and they can't be used with the methods JavaScript's built-in Math object provides. Most importantly, you can't mix BigInt and Number primitives in standard arithmetic operations:

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

To do arithmetic with BigInts, you must define both operands as BigInt values:

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