En JavaScript, ninguna cadena es igual a null.
Tal vez esperaba pass == nullque fuera cierto cuando se passtrata 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 0son más o menos iguales, podrías conjeturar razonablemente eso ''y nullson más o menos iguales. Sin embargo, no lo son.
Esta expresión es falsa:
'' == null
El resultado de comparar cualquier cadena con nulles falso. Por lo tanto, pass == nully 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 passes 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 .