← Все вопросы
Как преобразовать строку в число в JS и что значит +"5"?
15
Получаю число из input как строку. Какие есть способы превратить '5' в число 5? И почему +"5" вдруг работает?
4 ответа
30
✓ Принятый ответ — помог автору
Способов несколько:
Number('5') // 5
Number('5.5') // 5.5
Number('abc') // NaN (не число)
parseInt('5px') // 5 — берёт число с начала, мусор после игнорит
parseFloat('5.5kg') // 5.5
+'5' // 5 — унарный плюс, тот же Number
Про +"5": одиночный плюс перед строкой — это унарный оператор, который приводит операнд к числу. То есть +"5" == Number("5") == 5. Коротко, но многих сбивает с толку, потому что выглядит магически.
На практике:
Number(x)— когда строка должна быть числом целиком.parseInt(x, 10)— когда нужно выдрать целое из начала строки (не забывай второй аргумент 10 — систему счисления!).+x— коротко в своём коде, но в команде лучше явныйNumber(x)для читаемости.
Анастасия Гусева про parseInt с основанием 10 — важно, спасибо · 12 месяцев назад
13
Number(str) или +str. parseInt, если в строке есть лишние символы после числа.
6
Осторожно: parseInt('08') в старых движках мог дать 0 (трактовал как восьмеричное). Всегда пиши parseInt('08', 10).
-2
Просто parseInt, и всё.
Егор Гутников без основания 10 это грабли, Number чаще надёжнее · 12 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.