0
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

4

1 に答える 1

8

それは同等の if ステートメントではありません。switchステートメントは、厳密な等価 ===演算子を使用するように指定されています。

于 2014-05-02T14:12:33.750 に答える