zibinsky
@zibinsky

Странно срабатывает конкатенация?

Помогите разобраться, пожалуйста. Делаю кредитный калькулятор. В поле выбора суммы кредита стоят минус и плюс. Шаг установлен в 50 000. Странность вот в чем. Если вначале нажимаю на минус, то все работает как надо - сумма уменьшается на 50 000, нажимаю на плюс - сумма соответственно увеличивается на 50 000. Но вот если сразу наживаю на плюс - срабатывает конкатенация (что очень не желательно )))) ). Как это победить?

Код лежит здесь: https://codepen.io/jurij-zibinskij/pen/YzNEdXW
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Код не смотрел, но:
s = "123";
s += 4; // "1234" (строка)
s += 5; // "12345" (всё ещё строка)
s -= 6; // 12339 (уже число)
s += 7; // 12346 (теперь и далее всегда число)
s += 8; // 12354
s += 9; // 12363

Дело в том, что операция "+" является операцией сложения для числе, и одновременно с тем операцией конкатенации для строк. И в сочетании с автоматическим преобразованием типов получаются казусы:
("1" + 1) // "11"
(1 + "1") // "11"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zibinsky
@zibinsky Автор вопроса
Да, я уже пенял. Дописал преобразование во втором блоке (там, где +). Спасибо!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы