2012-06-13 11 views
7

可能性の重複:
Is it safe to assume strict comparison in a Javascript switch statement?javascript switch/case:タイプが比較されていますか?

JavaScriptでスイッチ/ case文は、種類や値のみを比較していますか?言い換えれば

、私は次のコードがある場合:

switch (variable) 
{ 
    case "0": [...] break; 
    case "1": [...] break; 
    default: [...] break; 
} 

を、それが

if (variable == "0") 
{ 
    [...] 
} 
else if (variable == "1") 
{ 
    [...] 
} 
else 
{ 
    [...] 
} 

または編集

if (variable === "0") 
{ 
    [...] 
} 
else if (variable === "1") 
{ 
    [...] 
} 
else 
{ 
    [...] 
} 

と同等です:強制する方法があります値とタイプを一度に比較する

+8

... – gdoron

+3

それは – Pointy

+0

@amnotiam :-)質問を入力していたよりも、はい、それはjsfiddleを入力するより少ない時間を取っているだろう。どのようにそれらを見つけるのですか?あなたはそれを以前見たことがありますか? – gdoron

答えて

9

はい、型が比較されます。

入力が===演算子で定義されているclauseSelectorと等しい場合は、 がtrueに設定されます。

ECMA-262、あなたは簡単にそれをテストすることができます95ページ

1

それは、同様に

例タイプをチェック:

var x = false; 

switch (x) { 
case "": 
    alert('x'); /// Not happening 
    break; 
case false: 
    alert('y'); // happen 
    break; 
}​ 

Live DEMO

そしてスペックが言うように:

によって定義されるような入力がclauseSelectorに等しい場合に===演算子、次に...

関連する問題