En JavaScript, ninguna cadena es igual a null
.
Tal vez esperaba pass == null
que fuera cierto cuando se pass
trata de una cadena vacía porque sabe que el operador de igualdad suelta ==
realiza ciertos tipos de coerción de tipo.
Por ejemplo, esta expresión es verdadera:
'' == 0
Por el contrario, el operador de igualdad estricta ===
dice que esto es falso:
'' === 0
Teniendo en cuenta eso ''
y 0
son más o menos iguales, podrías conjeturar razonablemente eso ''
y null
son más o menos iguales. Sin embargo, no lo son.
Esta expresión es falsa:
'' == null
El resultado de comparar cualquier cadena con null
es falso. Por lo tanto, pass == null
y todas sus otras pruebas son siempre falsas, y el usuario nunca recibe la alerta.
Para arreglar su código, compare cada valor con la cadena vacía:
pass === ''
Si está seguro de que pass
es una cadena, pass == ''
también funcionará porque solo una cadena vacía es más o menos igual a la cadena vacía. Por otro lado, algunos expertos dicen que es una buena práctica usar siempre la igualdad estricta en JavaScript a menos que específicamente desee hacer la coerción de tipo que realiza el operador de igualdad suelta.
Si desea saber qué pares de valores son aproximadamente iguales, consulte la tabla "Comparaciones de igualdad" en el artículo de Mozilla sobre este tema .