Number - это 64-битное число с плавающей точкой, который
может хранить довольно большие числа (как со знаком, так и без), десятичные
дроби и многое другое.
Тип данных Number также может использоваться для представления десятичных, экспоненциальных, восьмеричных, шестнадцатеричных и двоичных чисел.
let intNr = 1;
let decNr = 1.5;
let expNr = 1.4e15;
let octNr = 0o10; //в десятичной системе будет 8
let hexNr = 0x3E8; //в десятичной системе будет 1000
let binNr = 0b101; //в десятичной системе будет 5Все вышеперечисленные числа относятся к типу данных Number.
Итак, целые числа — это числа, подобные этим:
let intNr2 = 3434;
let intNr3 = -111;Числа с плавающей точкой тоже относятся к типу Number:
let decNr2 = 45.78;И двоичные числа:
let binNr2 = 0b100; // десятичная версия будет 4Диапазон значений типа данных Number находится между 253–1 и –(253–1). BigInt
вступает в дело, когда вам требуются числа больше (или меньше) этого интервала.
Тип данных BigInt можно узнать по окончанию n:
let bigNr = 90071992547409920n;Рассмотрим, что происходит, когда мы начинаем вычисления между ранее заданным целым числом типа Number, intNr, и значением типа BigInt, bigNr:
let result = bigNr + intNr;
// Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversionsДля выполнения операций нельзя смешивать тип данных BigInt с типом данных Number,
можно использовать BigInt только с другими BigInt.
Метод BigInt() можно вызвать только без ключевого слова new. Попытка создать его с ключевым словом new приведёт к ошибке TypeError.