назад до уроку

Виправте додавання

важливість: 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

В останньому варіанті унарний і бінарний + використовуються разом. Виглядає химерно, чи не так?