JavaScript BigInt
BigInt
is a special numeric type in JavaScript used to represent integers larger than Number.MAX_SAFE_INTEGER
(2^53 - 1
).
🔹 1. Creating a BigInt
There are two ways to create a BigInt
:
✅ Using n
suffix
✅ Using BigInt()
constructor
✔ Use the n
suffix for direct literals and BigInt()
for dynamic values like user input.
🔹 2. Why Use BigInt
?
✅ Supports very large numbers without loss of precision.
✅ Prevents overflow errors that occur with regular Number
.
✅ Works well for cryptography, finance, and precise calculations.
🔹 3. Arithmetic Operations with BigInt
BigInt supports basic arithmetic like +
, -
, *
, /
, and %
.
✔ Division always rounds down (truncates decimals).
🔹 4. Mixing BigInt
with Number
(❌ Not Allowed)
JavaScript does not allow mixing BigInt
with Number
in operations.
✔ Fix: Convert Number
to BigInt
before using it.
Or convert BigInt
to Number
(⚠ but may lose precision!):
🔹 5. Comparisons with BigInt
BigInt
can be compared with regular Number
without issues.
✔ Use ==
for comparison, but avoid ===
unless types match.
🔹 6. BigInt
in Boolean Context
0n
is falsy (like0
).- Any other
BigInt
is truthy.
🔹 7. Using BigInt
with JSON (⚠ Not Supported)
JavaScript JSON.stringify()
does not support BigInt
.
✔ Solution: Convert BigInt
to a String
before serialization.
🔹 8. When to Use BigInt
?
✅ When working with very large integers (cryptography, timestamps, large financial numbers).
✅ When avoiding precision loss from Number
.
❌ Do not use BigInt
for floating-point calculations (it only handles integers).
🔹 9. Summary
✔ BigInt
allows handling numbers beyond Number.MAX_SAFE_INTEGER
.
✔ Use n
suffix (1234n
) or BigInt()
constructor.
✔ Arithmetic operations work but mixing with Number
needs conversion.
✔ BigInt
cannot be used in JSON.stringify()
.
✔ Great for precision-critical applications.
🚀 Use BigInt
when you need precise, large-number calculations!