Не работает код в switch case?

При вводе в alert Строчного значения должно выводится (' number is Ba_NaN')
При вводе Числа должно выводится ('OK!')
  • Вопрос задан
  • 185 просмотров
Решения вопроса 2
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Prompt всегда возвращает строковый тип данных, даже если вы туда введете число. Поэтому у вас и не проваливается в default
https://developer.mozilla.org/ru/docs/Web/API/Wind...
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В alert нельзя ввести никакое значение.
У вас, если введён хоть один символ, то всегда выполняется третья ветка, так как numOrStr == numOrStr.
Для понимания можно расписать case как цепочку if/else
if (numOrStr == null) {
  console.log('вы отменили');
} else if (numOrStr == '') {
  console.log('Empty String');
} else if (numOrStr == numOrStr) { // условие всегда истинно
  console.log(' number is Ba_NaN');
} else {
  console.log('OK!'); // недостижимый код
}

Кроме того, prompt всегда возвращает строку, чтобы проверить, что введено число, надо попытаться преобразовать строку и убедиться, что получен не NaN. Сделать это можно через isNaN(Number(numOrStr)).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект