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 + 1aruncăTypeError: Cannot mix BigInt and other types. - Folosești
JSON.stringifype un obiect cu BigInt și primeștiTypeError: 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
Number.isInteger / isSafeInteger: Verifică dacă o valoare este un număr întreg (și dacă este întreg fără pierdere de precizie).BigInt.asIntN / asUintN: Taie un BigInt la un număr fix de biți, ca un întreg cu semn (asIntN) sau fără semn (asUintN).Number.prototype.toString: Transformă un număr în text, opțional în altă bază: binar, octal, hexazecimal.