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. Удачного кодирования!