В 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))
.