Skip to main content

Що таке BigInt?

Що таке BigInt

BigInt - це спеціальний тип даних у JavaScript, який призначений для роботи з дуже великими цілими числами, що виходять за межі стандартного типу Number.

Звичайні числа (Number) у JS зберігаються як 64-бітні значення IEEE-754, і максимальне безпечне ціле число, яке можна точно представити, - це:

javascript
Number.MAX_SAFE_INTEGER; // 9007199254740991 (≈ 9 * 10^15)

Якщо перевищити цю межу, JavaScript почне втрачати точність:

javascript
console.log(9007199254740991 + 1); // 9007199254740992 (правильно) console.log(9007199254740991 + 2); // 9007199254740992 (помилка!)

BigInt вирішує цю проблему

BigInt дозволяє працювати з цілими числами будь-якої довжини, без втрати точності:

javascript
const big = 9007199254740991n; // літерал BigInt (зверни увагу на 'n' у кінці) console.log(big + 2n); // 9007199254740993n

Суфікс n у кінці числа робить його BigInt. Можна також створити через конструктор:

javascript
const big = BigInt("900719925474099312345678901234567890");

Основні властивості BigInt

ОсобливістьПриклад
Створюється за допомогою n або BigInt()123n або BigInt(123)
Підтримує арифметику (+, -, *, /, %)100n + 200n → 300n
Ділення - лише цілочисельне5n / 2n → 2n (залишок відкидається)
Не можна змішувати зі звичайними числами (Number) напряму1n + 1 - помилка
Можна явно перетворитиNumber(1n) або BigInt(1)
Працює з операторами порівняння2n > 1n
Працює з ===, але не дорівнює Number1n === 1 → false

Приклад помилки при змішуванні типів

javascript
const big = 10n; const num = 5; console.log(big + num); // TypeError

Правильно:

javascript
console.log(big + BigInt(num)); // 15n

або

javascript
console.log(Number(big) + num); // 15

Приклади використання

  1. Криптографія, хеші, великі ключі
javascript
const key = 1234567890123456789012345678901234567890n; const mod = 99999999999999999999999999999999999n; console.log(key % mod);
  1. Фінансові розрахунки, де потрібна точність
javascript
const price = 10000000000000000000n; // точна сума без помилок округлення
  1. Робота з дуже великими лічильниками
javascript
let counter = 0n; for (let i = 0n; i < 1_000_000_000_000_000_000n; i++) { counter++; }

Перевірка типу

javascript
typeof 123n; // "bigint"

Підсумок

Ключовий фактЗначення
Тип данихbigint
Навіщо потрібенДля роботи з цілими числами > Number.MAX_SAFE_INTEGER
Створення123n або BigInt(123)
ОсобливістьПовна точність, лише цілі
Несумісний з Numberпотрібно приводити типи вручну
ДіленняЛише цілочисельне

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.