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

У примитивных значений, вроде 3.14 или 2014, не может быть свойств или методов (потому что они не объекты). Однако, в JavaScript все устроено так, что даже у примитивных значений доступны свои методы и свойства, потому что JavaScript интерпретирует любые значения, как объекты с выполняемыми методами и свойствами.

Встроенные методы и свойства объекта Number помогают работать с числовыми данными.

Метод toString()

Метод toString() возвращает число как строку.

Все методы объекта Number можно использовать с любыми видами чисел (константами, переменными или выражениями):


var x = 123;
x.toString();            // возвращает 123 от переменной x
(123).toString();        // возвращает 123 от константы 123
(100 + 23).toString();   // возвращает 123 от выражения 100 + 23 

Метод toExponential()

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

В параметре задается количество цифр после десятичной точки:


var x = 9.656;
x.toExponential(2);     // возвращает 9.66e+0
x.toExponential(4);     // возвращает 9.6560e+0
x.toExponential(6);     // возвращает 9.656000e+0 

Параметр необязателен. Если он не задан, то JavaScript не будет округлять число.

Метод toFixed()

Метод toFixed() возвращает строку с числом, записанным с заданным количеством цифр после десятичной точки:


var x = 9.656;
x.toFixed(0);           // возвращает 10
x.toFixed(2);           // возвращает 9.66
x.toFixed(4);           // возвращает 9.6560
x.toFixed(6);           // возвращает 9.656000 

toFixed(2) отлично подходит для отображения денежных значений.

Метод toPrecision()

Метод toPrecision() возвращает строку с числом заданной длины:


var x = 9.656;
x.toPrecision();        // возвращает 9.656
x.toPrecision(2);       // возвращает 9.7
x.toPrecision(4);       // возвращает 9.656
x.toPrecision(6);       // возвращает 9.65600 

Метод valueOf()

Метод valueOf() возвращает число как число.


var x = 123;
x.valueOf();            // возвращает 123 из переменой x
(123).valueOf();        // возвращает 123 из константы 123
(100 + 23).valueOf();   // возвращает 123 из выражения 100 + 23 

В JavaScript число может быть примитивным значением (typeof = number) или объектом (typeof = object).

Метод valueOf() используется внутри JavaScript, чтобы преобразовывать объекты Number в примитивные значения. Нет никаких причин использовать данный метод напрямую в своем коде.

У всех типов данных JavaScript есть методы valueOf() и toString().

Преобразование переменных в числовой тип

В JavaScript существует 3 метода, которые позволяют преобразовать переменную в число:

  • Метод Number()
  • Метод parseInt()
  • Метод parseFloat()

Эти методы не являются методами числового типа. Это глобальные методы JavaScript.

Глобальные методы можно использовать со всеми типами данных JavaScript.

Метод Number()

Метод Number() может использоваться для преобразования переменных JavaScript в числа:


Number(true);          // возвращает 1
Number(false);         // возвращает 0
Number("10");          // возвращает 10
Number("  10");        // возвращает 10
Number("10  ");        // возвращает 10
Number("10 20");       // возвращает NaN 
Number("John");        // возвращает NaN 

Внимание! Если число нельзя конвертировать, то возвращается значение NaN (Не число).

Также, метод Number() может конвертировать дату в число:


Number(new  Date("2017-09-30"));    // возвращает 1506729600000

Метод Number() при конвертировании даты возвращает количество миллисекунд, прошедших с 1.1.1970.

Метод parseInt()

Метод parseInt() парсит строку и возвращает целое число. В строке можно использовать пробелы. Возвращается только первое число:


parseInt("10");         // возвращает 10
parseInt("10.33");      // возвращает 10
parseInt("10 20 30");   // возвращает 10
parseInt("10 years");   // возвращает 10
parseInt("years 10");   // возвращает NaN  

Внимание! Если число нельзя конвертировать, то возвращается значение NaN (Не число).

Метод parseFloat()

Метод parseFloat() парсит строку и возвращает число с десятичной точкой. В строке можно использовать пробелы. Возвращается только первое число:


parseFloat("10");        // возвращает 10
parseFloat("10.33");     // возвращает 10.33
parseFloat("10 20 30");  // возвращает 10
parseFloat("10 years");  // возвращает 10
parseFloat("years 10");  // возвращает NaN 

Внимание! Если число нельзя конвертировать, то возвращается значение NaN (Не число).

Свойства числового типа

СвойствоОписание
MAX_VALUEВозвращает самое большое число, возможное в JavaScript
MIN_VALUEВозвращает самое маленькое число, возможное в JavaScript
NEGATIVE_INFINITYПредставляет отрицательную бесконечность (возвращается при переполнении)
NaNПредставляет значение "Не число"
POSITIVE_INFINITYПредставляет положительную бесконечность (возвращается при переполнении)

var x = Number.MAX_VALUE; 
var x = Number.MIN_VALUE; 
var x = Number.NEGATIVE_INFINITY; 
var x = Number.POSITIVE_INFINITY; 
var x = Number.NaN; 

Свойства числового типа нельзя использовать с переменными

Свойства числового типа принадлежат оберточному объекту числового типа JavaScript, который называется Number.

Доступ к этим свойствам можно получить только в виде Number.ИМЯ_СВОЙСТВА.

Обращение в виде myNumber.ИМЯ_СВОЙСТВА, где myNumber переменная, выражение или константное значение, вернет значение undefined:


var x = 6;
var y = x.MAX_VALUE;    // y станет undefined