Eu tenho uma variável que pode ser booleana false
ou um inteiro (incluindo 0). Quero colocá-lo em uma declaração switch como:
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
Em meus testes no Google Chrome, parece funcionar perfeitamente, mas estou um pouco nervoso para usá-lo porque temo que em alguns navegadores, se my_var
estiver false
, ele execute o primeiro caso desde então 0 == false
.
Só estou me perguntando se há algo oficial em JavaScript que diga que a instrução switch usará uma comparação estrita 0 !== false
, mas não consigo encontrar nada e não tenho certeza se isso funcionará bem em diferentes mecanismos de JavaScript. Alguém sabe se a comparação feita por uma instrução switch tem garantia de ser estrita?
http://qfox.nl/notes/110 responde à sua pergunta. (Esse cara sabe muito sobre os detalhes do JavaScript)
fonte
Sim,
switch
"[usa] a comparação estrita===
".Fonte: switch - JavaScript | MDN
fonte