Как преобразовать строку в число в JavaScript?
В JavaScript существует несколько способов преобразования строки в число. Ниже приведены различные методы, каждый из которых имеет свои особенности и случаи использования.
1. Использование Number()
Метод Number()
является самым простым и прямолинейным способом преобразования строки в число. Если строка не может
быть преобразована в число, будет возвращено значение NaN
(Not-a-Number).
Пример:
let str = "123";
let num = Number(str);
console.log(num); // 123
console.log(typeof num); // "number"
let invalidStr = "abc";
let invalidNum = Number(invalidStr);
console.log(invalidNum); // NaN
Примечания:
- Если строка пустая, результатом будет
0
. - Если строка представляет собой число с пробелами в начале или в конце, метод
Number()
успешно преобразует ее в число, игнорируя пробелы.
2. Использование унарного оператора +
Унарный оператор +
является быстрым способом преобразования строки в число. Он работает так же, как Number()
, но в
более компактной форме.
Пример:
let str = "123";
let num = +str;
console.log(num); // 123
console.log(typeof num); // "number"
Если строка не может быть преобразована в число, будет возвращено NaN
.
3. Использование parseInt()
и parseFloat()
parseInt()
используется для преобразования строки в целое число, игнорируя дробную часть, если она существует.parseFloat()
используется для преобразования строки в число с плавающей точкой (дробное число).
Пример с parseInt()
:
let str = "123px";
let num = parseInt(str);
console.log(num); // 123
let invalidStr = "abc123";
let invalidNum = parseInt(invalidStr);
console.log(invalidNum); // NaN, так как строка не начинается с числа
Пример с parseFloat()
:
let str = "123.45px";
let num = parseFloat(str);
console.log(num); // 123.45
let invalidStr = "abc123.45";
let invalidNum = parseFloat(invalidStr);
console.log(invalidNum); // NaN, потому что строка не начинается с числа
Примечания:
- В отличие от
Number()
, методыparseInt()
иparseFloat()
могут игнорировать символы после числовой части строки, если они идут после числа.
4. Использование Math.floor()
или Math.ceil()
Иногда нужно преобразовать строку в целое число, округляя его вниз или вверх. Для этого можно использовать
Math.floor()
или Math.ceil()
вместе с унарным оператором +
или parseInt()
.
Пример:
let str = "123.45";
let num = Math.floor(+str); // Преобразует строку и округляет вниз
console.log(num); // 123
Заключение
В JavaScript есть несколько способов преобразования строки в число, и каждый из них имеет свои особенности:
Number()
— для простого преобразования строки в число.- Унарный оператор
+
— компактный и быстрый способ. parseInt()
иparseFloat()
— для извлечения целого или дробного числа из строки, включая работу с нечисловыми символами.
Лучше всего выбирать метод в зависимости от контекста, например, если важно точно контролировать тип числа или когда строка может содержать дополнительные символы.