Поиск по сайту
Ctrl + K
Вопросы по JS

Как преобразовать строку в число в 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() — для извлечения целого или дробного числа из строки, включая работу с нечисловыми символами.

Лучше всего выбирать метод в зависимости от контекста, например, если важно точно контролировать тип числа или когда строка может содержать дополнительные символы.