Mam zmienną, która może być wartością logiczną false
lub liczbą całkowitą (w tym 0). Chcę umieścić to w instrukcji przełącznika, takiej jak:
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
W moich testach w Google Chrome wydaje się działać idealnie, ale trochę się denerwuję, gdy go używam, ponieważ obawiam się, że w niektórych przeglądarkach, jeśli my_var
tak false
, może to wykonać pierwszy przypadek od tego czasu 0 == false
.
Zastanawiam się tylko, czy w JavaScript jest coś oficjalnego, które mówi, że instrukcja switch będzie używać ścisłego porównania, takiego 0 !== false
, ale sam nie mogę niczego znaleźć i nie jestem pewien, czy to zadziała dobrze w różnych silnikach JavaScript. Czy ktoś wie, czy porównanie wykonane przez instrukcję przełącznika gwarantuje ścisłe?
http://qfox.nl/notes/110 odpowie na Twoje pytanie. (Ten facet dużo wie o podstawach JavaScript)
źródło
Tak,
switch
„[używa] ścisłego porównania===
”.Źródło: przełącznik - JavaScript | MDN
źródło