либо делать switch(true) и тогда будут работать более сложные условия.
Об этом у нас тут и срач, некоторые в это не верят.
let num = 50;
switch (num) {
case num > 60:
console.log("Нет, переменная меньше 60");
break;
case num < 40:
console.log("Нет, переменная больше 40");
break;
case num == 50:
console.log("Да, переменная ровна 50");
break;
}
Оператор 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;
}