вернуться к уроку

Исправьте сложение

важность: 5

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

Он работает неправильно. Код в примере выводит 12 (для значения полей по умолчанию).

В чём ошибка? Исправьте её. Результат должен быть 3.

let a = prompt("Первое число?", 1);
let b = prompt("Второе число?", 2);

alert(a + b); // 12

Причина в том, что окно запроса возвращает пользовательский ввод как строку.

Поэтому переменные получают значения "1" и "2" соответственно.

let a = "1"; // prompt("Первое число?", 1);
let b = "2"; // prompt("Второе число?", 2);

alert(a + b); // 12

Нам нужно привести строки к числам перед применением оператора +. Например, с помощью Number() или вставки + перед ними.

Вставить + можно прямо перед prompt:

let a = +prompt("Первое число?", 1);
let b = +prompt("Второе число?", 2);

alert(a + b); // 3

Или внутри alert:

let a = prompt("Первое число?", 1);
let b = prompt("Второе число?", 2);

alert(+a + +b); // 3

В последнем варианте унарный и бинарный + используются вместе. Выглядит забавно, правда?