Объект Number в JavaScript

Объект-конструктор Number создаёт объект, значением которого является числовое представление переданного аргумента.

var num1 = new Number();
alert(num1); // 0
var num2 = new Number(null);
alert(num2); // 0
var num3 = new Number(true);
alert(num3); // 1
var num4 = new Number(Infinity);
alert(num4); // Infinity
var num5 = new Number('str');
alert(num5); // NaN

Основная цель введения объекта Number - это использование его свойств и методов для работы с числами. В JavaScript примитивные числа и объекты класса Number не одно и то же, но все свойства и методы можно применять и к примитивным значениям. При вызове свойств для примитивных чисел JavaScript автоматически оборачивает их конструктором Number.

Свойства объекта Number

MAX_VALUE

Свойство MAX_VALUE представляет собой максимальное положительное число в JavaScript. Оно примерно равно 1.8e+308. Все числа, большие чем MAX_VALUE, преобразуются в бесконечность (Infinity).

alert(Number.MAX_VALUE); // 1.7976931348623157e+308
alert(2e+308); // Infinity

MIN_VALUE

Свойство MIN_VALUE представляет собой минимальное положительное число в JavaScript. Оно примерно равно 5e-324. Все числа, меньшие чем MIN_VALUE, преобразуются в ноль.

alert(Number.MIN_VALUE); // 5e-324
alert(5e-325); // 0

NaN

Свойство NaN представляет собой числовое значение NaN (Not a number - не число).

alert(Number.NaN); // NaN

POSITIVE_INFINITY

Свойство POSITIVE_INFINITY представляет собой числовое значение Infinity (положительная бесконечность).

alert(Number.POSITIVE_INFINITY); // Infinity

NEGATIVE_INFINITY

Свойство NEGATIVE_INFINITY представляет собой числовое значение -Infinity (отрицательная бесконечность).

alert(Number.NEGATIVE_INFINITY); // -Infinity

prototype

Свойство prototype наследуется из класса Object.

var num = new Number();
Number.prototype.prop = 'новое свойство';
alert(num.prop); /* 'новое свойство' */

Методы объекта Number

Объект Number не имеет своих собственных методов, но к нему применимы методы из его прототипа.

Методы наследников Number

toExponential()

Метод toExponential() преобразует число в экспоненциальную форму и возвращает это значение в виде строки. В качестве аргумента можно указать количество цифр, которые останутся после десятичной точки (то есть число будет округлено или будут добавлены нули). Если метод вызывается без аргумента, то число не округляется.

var num = 13415.2352;
alert(num.toExponential()); // 1.34152352e+4
alert(num.toExponential(2)); // 1.34e+4
alert(num.toExponential(10)); // 1.3415235200e+4

Если метод вызывается не на переменной, а на конкретном числе, то после числа желательно поставить пробел, чтобы последующая точка рассматривалась как вызов свойства.

alert(134152352.toExponential()); // выдаст ошибку
alert(134152352 .toExponential()); // 1.34152352e+8

toFixed()

Метод toFixed() преобразует число в обычную форму с десятичной точкой и возвращает это значение в виде строки. В качестве аргумента можно указать количество цифр, которые останутся после десятичной точки (то есть число будет округлено или будут добавлены нули). Если метод вызывается без аргумента, то число округляется до целого.

var num = 1.3415235923887e+4;
alert(num.toFixed()); // 13415
alert(num.toFixed(3)); // 13415.236

Если число больше, чем 1e+21, то возвращаемый результат будет в экспоненциальной форме.

alert(1e+21 .toFixed()); // 1e+21

toPrecision()

Метод toPrecision() округляет число и возвращает это значение в виде строки. В качестве аргумента указывается количество значащих цифр, которые останутся после округления. Если метод вызывается без аргумента, то число не округляется.

alert(1.341.toPrecision()); // 1.341
alert(1.341.toPrecision(3)); // 1.34
alert(1341.5235.toPrecision()); // 1341.5235
alert(1341.5235.toPrecision(3)); // 1.34e+3

toString()

Метод toString() возвращает примитивное значение объекта (строковое). Для данного метода в качестве аргумента можно указать целое число от 2 до 36. Оно указывает, в какой системе счисления следует представить число. Без аргумента используется десятичная система счисления.

var num = 13;
alert(num.toString()); // 13
alert(num.toString(3)); // 111
alert(num.toString(16)); // d

valueOf()

Метод valueOf() возвращает примитивное значение объекта (числовое).

var num = new Number(77);
alert(num.valueOf()); // 77
alert(typeof num.valueOf()); // number