Оператор case не аналог оператора if, он не умеет обрабатывать условия, а сравнивает переменную с фиксированным значением.
switch (num) { // никогда не сработает потому что если num>60 то будет сравнивать num c true если мешьше 60 то с false case num > 60: console.log("Нет, переменная меньше 60"); break;
у какого чувака? У udemy? Не смотрел его курсы, может он не чистый js использует, а чтото типа ts с расширенным функционалом для switch, с последующей транспиляцией в js?
case проверяет переменную на строгое соответствие, так что не работает именно switch/case
switch (num) {
// никогда не сработает потому что если num>60 то будет сравнивать num c true если мешьше 60 то с false
case num > 60:
console.log("Нет, переменная меньше 60");
break;
// никогда не сработает потому что если num<40 то будет сравнивать num c true если бльше 40 то с false
case num < 40:
console.log("Нет, переменная больше 40");
break;
// никогда не сработает потому что если num=50 то будет сравнивать num c true
case num == 50:
console.log("Да, переменная ровна 50");
break;
}
Про switch(true) сказанно абсолютно верно, но про неверие некоторых Вы опять придумываете и передергиваете. Ведь мой ответ и коментарии был именно про switch(num) и недопустимость/невозможность использования его с условиями типа (num>60) или (num<40)
Ведь основной посыл вопроса у автора был именно в том, почему не работает этот пример, а у чувака с udemy работает:
И я на мой взгляд дал исчерпывающий ответ, с демонстрацией того, что данный пример не работосплсобен в принципе, и у чувака с udemy работать не может, а также выдвинул ряд предположений, как могло так получиться, что данный код заставили работать.
А срач у нас идет именно из-за того, что Вы вместо того чтобы внимательно прочитать ответ, и понять посыл и дать корректировку двухсмысленным утверждениям, начали в достаточно грубой форме тыкать носом, при этом не по существу Пример