Оператор 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 Заявление указано использовать строгое равенство === оператор.