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
.
Спасибо за внимание.