Что такое Big Map

Ответ

BigInt — это встроенный объект в JavaScript, который позволяет работать с целыми числами произвольной длины. Он решает проблему ограничения числа Number (2^53 - 1) и поддерживает операции с очень большими числами.

Пример:

const bigNum = 9007199254740991n; // Литерал BigInt (добавляется 'n')
const hugeString = BigInt("123456789012345678901234567890"); // Создание из строки
console.log(bigNum + 1n); // 9007199254740992n

Особенности:

  • Нельзя смешивать с обычными числами в операциях
  • Поддерживает все стандартные математические операции
  • Не теряет точность при работе с большими значениями
  • Нельзя использовать с Math методами

Ответ 18+ 🔞

Вот ты сидишь, пишешь на JS, всё пучком. Числа складываешь, вычитаешь, и тут — бац! — 9007199254740991 + 1 тебе выдаёт какую-то хуйню, а не 9007199254740992. Удивление пиздец! А всё потому, что у обычного Number есть свой потолок, этот... как его... 2^53 - 1. Дальше — пиздец, точность теряется, всё, приехали.

И тут, как чёрт из табакерки, выскакивает BigInt. Объект, блядь, встроенный! Спасение для тех, кому нужно считать дохуя. До овердохуища, понимаешь? До миллиарда миллиардов, и хоть бы хны.

Создать его — проще пареной репы. Либо суффикс n к цифре прилепить, либо строку в конструктор запихнуть — он всё схавает.

const bigNum = 9007199254740991n; // Видишь 'n' на конце? Это он, красавец!
const hugeString = BigInt("123456789012345678901234567890"); // Из строки, блядь, хоть всю телефонную книгу впихивай
console.log(bigNum + 1n); // 9007199254740992n — и никакого геморроя!

Но есть, конечно, свои тараканы. Главный — нельзя их в одном котле мешать. Нельзя взять BigInt и приплюсовать к нему обычный Number. Вывалит тебе ошибку, типа «эй, мудак, определись уже». Либо все числа делай BigInt, либо все Number. Арифметика вся работает — плюс, минус, умножить, ебашить в степень. Только методы Math с ним не дружат, они для мелко-пузатых Number заточены.

Короче, если работаешь с деньгами, криптой или просто с астрономическими цифрами — это твой выход. Чтобы не охуеть потом от потери копеек на округлении.