JavaScript: BigInt
большие числа в JavaScript
Что получится, если в JavaScript к обычному целому числу добавить суффикс n.
let sum = 1n + 2n;
console.log(typeof sum);
На какой результат можно надеяться?
Задача довольно проста: в первой строке мы складываем два числа. Но это не обычные числа, а числа в формате BigInt.
В JavaScript BigInt является специальным встроенным объектом, созданным для представления целых чисел, значение которых превышает 2 в 53 степени минус 1 (этому числу соответствует константа Number.MAX_SAFE_INTEGER).
Создать число в формате BigInt можно двумя способами:
Добавив суффикс n к любому целому числу:
let big = 1000000000n // 1000000000n
Вызвав конструктор BigInt() и передав ему аргумент:
let bigN = BigInt(123) // 123n
В последнем случае аргумент может быть передан не только в виде целого числа в десятичном формате. Функция BigInt() отлично справляется с числами в двоичном и шестнадцатеричном форматах:
let bigHex = BigInt("0xffffffffffffffff") // 18446744073709551615n
let bigBin = BigInt("0b111") // 7n
Кроме того, аргумент может быть передан и в виде строки:
let bigS = BigInt("234") // 234n
В данной задаче числа в формате BigInt будут вести себя так же как и обычные числа. Так, сложение 1n и 2n приведет к результату 3n. Оператор typeof вернет для 3n название типа данных bigint в виде строки.
Таким образом, суффикс n приводит число к формату BigInt. А в консоли мы увидим строку с названием типа данных выполненного сложения: bigint.
Спасибо за внимание.
