Объект 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