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

Обзор числовых методов JavaScript

JavaScript предоставляет несколько методов, которые можно использовать с числами:

  • toString(): преобразует число в строку.
  • toExponential(): преобразует число в экспоненциальное представление.
  • toFixed(): форматирует число с определенным количеством десятичных знаков.
  • toPrecision(): форматирует число до определенной длины.
  • valueOf(): возвращает примитивное значение числа.

Рассмотрим подробно каждый из этих способов.

Метод toString()

Метод toString() преобразует число в строку. Этот метод можно использовать для любого типа чисел (литералы, переменные или выражения):

let x = 123;
x.toString();            // returns '123'
(123).toString();        // returns '123'
(100 + 23).toString();   // returns '123'

Метод toExponential()

Метод toExponential() преобразует число в экспоненциальную запись. Параметр может быть передан для определения количества символов после запятой:

let x = 9.656;
x.toExponential(2);  // returns '9.66e+0'
x.toExponential(4);  // returns '9.6560e+0'
x.toExponential(6);  // returns '9.656000e+0'

Метод toFixed()

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

let x = 9.656;
x.toFixed(0);  // returns '10'
x.toFixed(2);  // returns '9.66'
x.toFixed(4);  // returns '9.6560'
x.toFixed(6);  // returns '9.656000'

Метод toPrecision()

Метод toPrecision() форматирует число до определенной длины. Параметр может быть передан для определения общей длины числа:

let x = 9.656;
x.toPrecision();     // returns '9.656'
x.toPrecision(2);   // returns '9.7'
x.toPrecision(4);   // returns '9.656'
x.toPrecision(6);   // returns '9.65600'

Метод valueOf()

Метод valueOf() возвращает примитивное значение числа. Этот метод используется внутри JavaScript для преобразования объектов Number в примитивные значения:

let x = 123;
x.valueOf();            // returns 123
(123).valueOf();        // returns 123
(100 + 23).valueOf();   // returns 123

В JavaScript число может быть примитивным значением (typeof = число) или объектом (typeof = объект). Нет причин использовать метод valueOf() в вашем коде, поскольку JavaScript автоматически преобразует объекты Number в примитивные значения, когда это необходимо.

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

Есть три метода JavaScript, которые можно использовать для преобразования переменных в числа:

  • Number(): преобразует переменную JavaScript в число.
  • parseFloat(): анализирует строку и возвращает число с плавающей запятой.
  • parseInt(): анализирует строку и возвращает целое число.

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

Метод числа()

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

Number(true);        // returns 1
Number(false);       // returns 0
Number("10");        // returns 10
Number(" 10");       // returns 10
Number("10 ");       // returns 10
Number(" 10 ");      // returns 10
Number("10.33");     // returns 10.33
Number("10,33");     // returns NaN
Number("10 33");     // returns NaN
Number("John");      // returns NaN

Если число невозможно преобразовать, возвращается NaN (не число).

Метод Number(), используемый для дат

Number() также может преобразовать дату в число:

Number(new Date("1970-01-01"));  // returns 0

Метод Date() возвращает количество миллисекунд с 1.1.1970.

Метод parseInt()

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

parseInt("-10");        // returns -10
parseInt("-10.33");     // returns -10
parseInt("10");         // returns 10
parseInt("10.33");      // returns 10
parseInt("10 20 30");   // returns 10
parseInt("10 years");   // returns 10
parseInt("years 10");   // returns NaN

Если число не может быть преобразовано, возвращается NaN (не число).

Метод parseFloat()

parseFloat() анализирует строку и возвращает число. Допускаются пробелы. Возвращается только первое число:

parseFloat("10");        // returns 10
parseFloat("10.33");     // returns 10.33
parseFloat("10 20 30");  // returns 10
parseFloat("10 years");  // returns 10
parseFloat("years 10");  // returns NaN

Если число не может быть преобразовано, возвращается NaN (не число).

Методы числового объекта

Эти методы объекта принадлежат объекту Number:

  • Number.isInteger(): возвращает true, если аргумент является целым числом.
  • Number.isSafeInteger(): возвращает true, если аргумент является безопасным целым числом.
  • Number.parseFloat(): Преобразует строку в число.
  • Number.parseInt(): Преобразует строку в целое число.

Доступ к этим методам возможен только как Number.isInteger(). Использование X.isInteger(), где X — переменная, приведет к ошибке: TypeError X.isInteger is not a function.

Метод Number.isInteger()

Метод Number.isInteger() возвращает true, если аргумент является целым числом:

Number.isInteger(10);    // returns true
Number.isInteger(10.5);  // returns false

Метод Number.isSafeInteger()

Безопасное целое число — это целое число, которое можно точно представить как число двойной точности. Метод Number.isSafeInteger() возвращает true, если аргумент является безопасным целым числом:

Number.isSafeInteger(10);                  // returns true
Number.isSafeInteger(12345678901234567890);  // returns false

Безопасные целые числа — это все целые числа от -(2⁵³ — 1) до +(2⁵³ — 1). Это безопасно: 9007199254740991. Это не безопасно: 9007199254740992.

Метод Number.parseFloat()

Number.parseFloat() анализирует строку и возвращает число. Допускаются пробелы. Возвращается только первое число:

Number.parseFloat("10");        // returns 10
Number.parseFloat("10.33");     // returns 10.33
Number.parseFloat("10 20 30");  // returns 10
Number.parseFloat("10 years");  // returns 10
Number.parseFloat("years 10");  // returns NaN

Если число не может быть преобразовано, возвращается NaN (не число).

Метод Number.parseInt()

Number.parseInt() анализирует строку и возвращает целое число. Допускаются пробелы. Возвращается только первое число:

Number.parseInt("-10");        // returns -10
Number.parseInt("-10.33");     // returns -10
Number.parseInt("10");         // returns 10
Number.parseInt("10.33");      // returns 10
Number.parseInt("10 20 30");   // returns 10
Number.parseInt("10 years");   // returns 10
Number.parseInt("years 10");   // returns NaN

Если число невозможно преобразовать, возвращается NaN (не число).

Это всеобъемлющее руководство должно дать вам четкое представление о том, как JavaScript обрабатывает числа с использованием различных методов. По мере изучения вы обнаружите более сложные и интересные аспекты чисел в JavaScript. Удачного кодирования!