Number
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Значения Number
представляют числа с плавающей запятой, такие как 37
или -9,25
.
Конструктор Number
содержит константы и методы для работы с числами. Значения других типов могут быть преобразованы в числа с помощью функции Number()
.
Описание
Чаще всего числа представляются в виде прямой записи, например 255
или 3.14159
. В разделе «Лексический синтаксис» есть более подробное описание.
255; // двести пятьдесят пять
255.0; // такое же число
255 === 255.0; // true
255 === 0xff; // true (шестнадцатеричная запись)
255 === 0b11111111; // true (двоичная запись)
255 === 0.255e3; // true (десятичная экспоненциальная запись)
В JavaScript литерал числа (например, 37
) является значением с плавающей запятой, а не целым числом. Нет отдельного типа для представления целых значений. В JavaScript есть тип BigInt
, но он не предназначен для замены Number
для постоянного использования. Поэтому 37
это число, а не BigInt
.
При использовании в качестве функции Number(value)
преобразует строку или другое значение к числовому типу. Если значение не может быть преобразовано, то она вернёт NaN
.
Number("123"); // вернёт число 123
Number("123") === 123; // true
Number("unicorn"); // NaN
Number(undefined); // NaN
Конструктор
Number()
-
Создаёт новое значение
Number
.
Когда Number
вызывается в качестве конструктора (с ключевым словом new
), он создаёт объект Number
, который не является примитивом. Например, typeof new Number(42) === "object"
и new Number(42) !== 42
(при этом new Number(42) == 42
).
Предупреждение: Как правило вам не нужно использовать Number
в качестве конструктора.
Статические свойства
Number.EPSILON
-
Наименьший интервал между двумя представимыми числами.
Number.MAX_SAFE_INTEGER
-
Максимальное целое число, которое можно безопасно использовать в JavaScript (253 - 1).
Number.MAX_VALUE
-
Наибольшее представимое положительное число.
Number.MIN_SAFE_INTEGER
-
Минимальное целое число, которое можно безопасно использовать в JavaScript (-(253 - 1)).
Number.MIN_VALUE
-
Наименьшее представимое положительное число, то есть самое близкое к нулю положительное число (которое ещё не является нулём).
Number.NaN
-
Специальное значение для представления значений, не являющихся числом.
Number.NEGATIVE_INFINITY
-
Специальное значение для представления отрицательной бесконечности. Возвращается при переполнении.
Number.POSITIVE_INFINITY
-
Специальное значение для представления бесконечности. Возвращается при переполнении.
Статические методы
Number.isFinite()
-
Определяет, является ли переданное значение конечным числом.
Number.isInteger()
-
Определяет, является ли переданное значение целым числом.
Number.isNaN()
-
Определяет, является ли переданное значение значением
NaN
. Number.isSafeInteger()
-
Определяет, является ли переданное значение безопасным целым числом (в диапазоне от -(253 - 1) до 253 - 1).
Number.parseFloat()
-
То же самое, что и глобальная функция
parseFloat()
. Number.parseInt()
-
То же самое, что и глобальная функция
parseInt()
.
Свойства экземпляра
Эти свойства определены в Number.prototype
и есть у всех экземпляров Number
.
Number.prototype.constructor
-
Функция-конструктор, создающая экземпляр объекта. Для экземпляров
Number
начальным значением является конструкторNumber
.
Методы экземпляра
Number.prototype.toExponential()
-
Возвращает строку, представляющую число в экспоненциальной записи.
Number.prototype.toFixed()
-
Возвращает строку, представляющую число в записи с фиксированной точкой.
Number.prototype.toLocaleString()
-
Возвращает строку с зависимым от языка представлением этого числа. Переопределяет метод
Object.prototype.toLocaleString()
. Number.prototype.toPrecision()
-
Возвращает строку, представляющую число с заданной точностью в формате с фиксированной точкой или экспоненциальной записи.
Number.prototype.toString()
-
Возвращает строку, представляющую указанный объект с указанным основании. Переопределяет метод
Object.prototype.toString()
. Number.prototype.valueOf()
-
Возвращает примитивное значение указанного объекта. Переопределяет метод
Object.prototype.valueOf()
.
Примеры
Использование объекта Number
для присваивания значений числовым переменным
В следующем примере свойства объекта Number
используются для присваивания значений числовым переменным:
const biggestNum = Number.MAX_VALUE;
const smallestNum = Number.MIN_VALUE;
const infiniteNum = Number.POSITIVE_INFINITY;
const negInfiniteNum = Number.NEGATIVE_INFINITY;
const notANum = Number.NaN;
Целочисленный диапазон для объекта Number
Следующий пример показывает, какие минимальное и максимальное целочисленные значения может представить объект Number
.
const biggestInt = Number.MAX_SAFE_INTEGER; // (2**53 - 1) => 9007199254740991
const smallestInt = Number.MIN_SAFE_INTEGER; // -(2**53 - 1) => -9007199254740991
При разборе сериализованных в JSON данных можно ожидать, что целочисленные значения, выходящие за пределы этого диапазона, будут повреждены, если анализатор JSON приведет их к типу Number
.
Возможный обходной путь — использовать вместо этого String
.
Большие числа могут быть представлены с использованием типа BigInt
.
Использование Number()
для преобразования объекта Date
В следующем примере объект Date
преобразуется в числовое значение с использованием объекта Number
в качестве функции:
const d = new Date("1995-12-17T03:24:00");
console.log(Number(d));
Это выведет 819199440000
.
Преобразование строк и null в числа
Number("123"); // 123
Number("123") === 123; // true
Number("12.3"); // 12.3
Number("12.00"); // 12
Number("123e-1"); // 12.3
Number(""); // 0
Number(null); // 0
Number("0x11"); // 17
Number("0b11"); // 3
Number("0o11"); // 9
Number("foo"); // NaN
Number("100a"); // NaN
Number("-Infinity"); // -Infinity
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-number-objects |
Совместимость с браузерами
BCD tables only load in the browser