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

При вводе в alert Строчного значения должно выводится (' number is Ba_NaN')
При вводе Числа должно выводится ('OK!')
  • Вопрос задан
  • 196 просмотров
Решения вопроса 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)).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы