Em JavaScript, nenhuma string é igual a null.
Talvez você esperasse pass == nullser verdadeiro quando passhouver uma sequência vazia, porque você sabe que o operador de igualdade frouxa ==executa certos tipos de coerção de tipo.
Por exemplo, esta expressão é verdadeira:
'' == 0
Por outro lado, o operador de igualdade estrita ===diz que isso é falso:
'' === 0
Dado que ''e 0são fracamente iguais, você pode razoavelmente conjeturar isso ''e nullsão fracamente iguais. No entanto, eles não são.
Esta expressão é falsa:
'' == null
O resultado da comparação de qualquer cadeia de caracteres nullé falso. Portanto, pass == nulle todos os seus outros testes são sempre falsos, e o usuário nunca recebe o alerta.
Para corrigir seu código, compare cada valor com a sequência vazia:
pass === ''
Se você tiver certeza de que passé uma sequência, pass == ''também funcionará porque apenas uma sequência vazia é fracamente igual à sequência vazia. Por outro lado, alguns especialistas dizem que é uma boa prática sempre usar igualdade estrita no JavaScript, a menos que você queira especificamente fazer a coerção de tipo que o operador de igualdade frouxa executa.
Se você deseja saber quais pares de valores são fracamente iguais, consulte a tabela "Comparações de similaridade" no artigo da Mozilla sobre este tópico .