Windhack
@Windhack
developer

Почему суммируются строки, а не числа?

Вопрос простой до ужаса, но я пока не смог понять логику, помогите разобраться. Когда суммирую два числа, то получается суммируются строки, а когда умножаю, то число, как так?
function summa(number1, number2) {
				var total = number1 + number2;
				return total;
			}

			var n1 = prompt("Введите первое число!");
			var n2 = prompt("Введите второе число!");

			document.write(summa(n1, n2));
  • Вопрос задан
  • 4022 просмотра
Решения вопроса 2
werty1001
@werty1001
undefined
Это особенности JS, у вас две строки и происходит конкатенация, вот так уже будет сложение.

function summa(number1, number2) {
        var total = +number1 + +number2;
        return total;
}
Ответ написан
Комментировать
alsopub
@alsopub
Потому что n1 и n2 - это формально строки.
Используйте parseInt или parseFloat в зависимости от того что вы хотите получить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@GeneD88
QA
При операциях умножения\деления\вычитании js переводит строку в число, при сложении - нет

function summa(number1, number2) {
        var total = number1 + number2;
        return total;
      }

      var n1 = +prompt("Введите первое число!");
      var n2 = +prompt("Введите второе число!");

      document.write(summa(n1, n2));
Ответ написан
@balabukha
друзья!
prompt возвращает всегда строку.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы