У меня есть переменная, которая может быть логической false
или целочисленной (включая 0). Я хочу поместить это в оператор switch, например:
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
В моих тестах в Google Chrome он, кажется, работает отлично, но я немного нервничаю, используя его, потому что боюсь, что в некоторых браузерах, если он my_var
есть false
, он может выполнить первый случай с тех пор 0 == false
.
Мне просто интересно, есть ли что-нибудь официальное в JavaScript, в котором говорится, что оператор switch будет использовать строгое сравнение 0 !== false
, но я сам ничего не могу найти, и я не уверен, будет ли это хорошо работать в разных движках JavaScript. Кто-нибудь знает, гарантировано ли строгое сравнение, выполняемое оператором switch?
http://qfox.nl/notes/110 отвечает на ваш вопрос. (Этот парень знает толк в тонкостях JavaScript)
источник
Да,
switch
«[использует] строгое сравнение===
».Источник: переключатель - JavaScript | MDN
источник