Em JavaScript, nenhuma string é igual a null
.
Talvez você esperasse pass == null
ser verdadeiro quando pass
houver 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 0
são fracamente iguais, você pode razoavelmente conjeturar isso ''
e null
sã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 == null
e 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 .