BigInt în JavaScript

Numere întregi de orice mărime, fără pierdere de precizie; se scriu cu n la final.

Sintaxă
123n
BigInt(valoare)

Ce face BigInt

Numerele obișnuite sunt exacte doar până la 253 − 1. Un BigInt poate fi oricât de mare. Se scrie cu litera n la sfârșit (9007199254740993n) sau se creează cu BigInt(valoare), fără new.

Operațiile + - * / % ** merg între două valori BigInt; împărțirea taie zecimalele. Nu poți amesteca BigInt cu numere obișnuite într-un calcul: transformă explicit cu BigInt(n) sau Number(big).

toString(baza) scrie valoarea ca text (opțional în altă bază), toLocaleString o formatează după limbă, iar valueOf returnează valoarea simplă.

Parametri

Parametru Descriere
valoare Un număr întreg sau un text cu un număr întreg.

Ce returnează

O valoare de tip bigint.

Exemple

Exemplul 1: Precizie peste limita numerelor obișnuite

console.log(9007199254740993);
console.log(9007199254740993n);
console.log(2n ** 100n);
console.log(typeof 10n);

Rezultat

9007199254740992
9007199254740993n
1267650600228229401496703205376n
bigint

Exemplul 2: Calcule și conversii

console.log(7n / 2n, 7n % 2n);
console.log(BigInt("123456789012345678901234567890") * 2n);
try {
  console.log(10n + 5);
} catch (eroare) {
  console.log(eroare.message);
}
console.log(10n + BigInt(5), Number(10n) + 5);

Rezultat

3n 1n
246913578024691357802469135780n
Cannot mix BigInt and other types, use explicit conversions
15n 15

Exemplul 3: Afișare formatată

const populatie = 8_100_000_000n;

console.log(populatie.toString());
console.log(populatie.toLocaleString("ro-RO"));
console.log((255n).toString(16));

Rezultat

8100000000
8.100.000.000
ff

Greșeli frecvente

  • Amesteci BigInt cu numere: 10n + 1 aruncă TypeError: Cannot mix BigInt and other types.
  • Folosești JSON.stringify pe un obiect cu BigInt și primești TypeError: Do not know how to serialize a BigInt. Transformă valoarea în text înainte.
  • Treci un număr cu zecimale: BigInt(1.5) aruncă RangeError.

Comenzi înrudite