Не выполняется одно из условий

Подскажите, пожалуйста, почему не выполняется третье условие?

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);

→ Ссылка