Оператор switch не работает, если эквивалентен оператору if
switch(type)
{
case 'home':
console.log('home switch');
break;
}
Приведенный выше код не выводит данные на консоль, а также следующее:
switch(type)
{
case "home":
console.log('home switch');
break;
}
Следующее, однако, делает:
if (type == 'home')
{
console.log('home if');
}
Понятия не имею почему. Это не шоу-стопор, я могу использовать if
вместо заявления, но мне искренне любопытно, почему это так.
ПРИМЕЧАНИЕ: эти утверждения являются прямой заменой, здесь больше ничего не нужно рассматривать. Никаких изменений в области видимости, никакого кода, который я не упоминаю, может повлиять на значение type
,
1 ответ
Решение
Это не эквивалентное if-утверждение. switch
Заявление указано использовать строгое равенство ===
оператор.