Tengo una variable que puede ser booleana false
o un número entero (incluido 0). Quiero ponerlo en una sentencia switch como:¿Es seguro asumir una comparación estricta en una declaración de cambio de JavaScript?
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
En mis pruebas en Google Chrome, parece que funciona perfectamente, pero estoy un poco nervioso a usarlo porque me temo que en algunos navegadores , si my_var
es false
, podría ejecutar el primer caso desde 0 == false
.
Me pregunto si hay algo oficial en JavaScript que diga que la instrucción switch usará una comparación estricta como 0 !== false
, pero no puedo encontrar nada, y no estoy seguro si esto funcionará bien en diferentes motores de JavaScript. ¿Alguien sabe si se garantiza que la comparación hecha por una declaración switch es estricta?
Ha estado [de fiesta así desde 1999] (http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition, % 20Diciembre% 201999.pdf) (página 68, s 12.11, CaseBlock # 3) – Walf