переключатель / регистр javascript: сравниваются ли типы? [Дубликат]

Possible Duplicate:
Is it safe to assume strict comparison in a Javascript switch statement?

Оператор switch / case в javascript сравнивает типы или только значения?

Другими словами, когда у меня есть следующий код:

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
{
    [...]
}

редактировать: есть ли способ принудительно сравнивать значения и типы одновременно?

 user110692513 июн. 2012 г., 18:28
@gdoron: нет, только что сделалthis search, Это первый результат. :)
 gdoron13 июн. 2012 г., 18:26
@amnotiam. Как ты их находишь ...? ты видел это раньше?
 gdoron13 июн. 2012 г., 18:17
Вы можете легко проверить это ...
 gdoron13 июн. 2012 г., 19:01
@amnotiam, но так ты не получишь репутацию ...:)
 Pointy13 июн. 2012 г., 18:20
Да, для ввода jsfiddle потребовалось бы меньше времени, чем для ввода вопроса :-)

Ответы на вопрос(2)

Пример:

var x = false;

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

Live DEMO

И как сказано в спецификации:

If input is equal to clauseSelector as defined by the === operator, then...

Решение Вопроса

If input is equal to clauseSelector as defined by the === operator, then set found to true.

ECMA-262, стр. 95.

Ваш ответ на вопрос