Не выполняется одно из условий
Подскажите, пожалуйста, почему не выполняется третье условие?
function checkAge() {
let age = prompt('Сколько Вам лет?', '');
if (age > 18) {
alert(`Доступ разрешен. Вам ${age} лет`);
} else if (age < 18) {
alert(`Доступ запрещен. Вам ${age} лет`);
} else if (age == null || age == '') {
alert('Вы не ввели возраст, повторите ввод');
}
}
checkAge();
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Из prompt прилетает строка. При сравнении чисел она преобразуется в число. Пустая строка преобразуется в 0. В итоге если пользователь ввел пустую строку, то сработает условие 0 < 18
Чтобы предостеречь себя от того, что юзер ничего не ввёл, следует проверку на пустоту делать первой, а только потом более частные проверки.
alert('' < 18);