Давайте рассмотрим 3 метода, которые вы можете использовать для преобразования строк в числа в JavaScript. Каждый метод имеет свои сильные и слабые стороны, поэтому выберите тот, который лучше всего подходит для вашего конкретного случая использования.

Давайте погрузимся!

1. Number() Объект

На мой взгляд, это лучший метод для использования. Он также заботится о количестве точек.

Number("12") //12
Number("13.91") //13.91

Однако если строка содержит нечисловые символы, например разделители, будет возвращено значение NaN (не число).

Number("10,000") //NaN

Итак, если вы хотите безопасно вернуться к NaN из-за неправильного ввода, Number() — хороший выбор.

2. Метод ParseInt() и ParseFloat()

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

Метод parseInt() принимает два аргумента — строку и основание. Основание — это число, представляющее основание в системе счисления. В нашем случае должно быть 10.

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

parseInt("17", 10) //returns 17
parseInt("12.14", 10) //returns 12

Имейте в виду, что parseInt() автоматически прекратит синтаксический анализ, если обнаружит нечисловые символы. Это может быть полезно для синтаксического анализа таких строк, как «92px», но также может быть опасным, поскольку не выдает ошибку при неправильном вводе.

parseInt("97,800", 10) //97
parseInt("10 lions", 10) //10

Вы получите обратно NaN, если строка начинается с нечислового символа.

parseInt("I'm 10", 10) //NaN

Если вы хотите сохранить десятичную часть, а не просто получить целую часть, используйте parseFloat(). В отличие от своего брата parseInt(), он принимает только один аргумент — строку для преобразования.

parseFloat("12.99") // 12.99
parseFloat("10000") // 10000
parseFloat("10,000") // 10

3. Неявное принуждение к числу

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

Унарный Плюс

Вы можете преобразовать строку в число, поместив знак плюса перед строкой.

+"1000" //1000

Math.floor()

Метод Math.floor() сначала неявно преобразует строку в число, а затем округляет ее до ближайшего целого числа.

Math.floor("1000.01") // 1000

Math.round()

Метод Math.round() также сначала неявно преобразует строку в число, а затем округляет ее до ближайшего целого числа.

Math.round("1000") //1000

Если вам понравилось, загляните также в мой блог.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.