Eu testei cada um dos valores que resultam em false
e não consegui compreender uma coisa, se eu compara-los, por serem false
por baixo dos panos, não era esperado um true
?
Valor "false" == "" resultou em true
Valor "" == "" resultou em true
Valor "0" == "" resultou em true
// Agora aqui deu false, por que? se representa false ? (false == false seria true)
Valor "NaN" == "" resultou em false
Valor "null" == "" resultou em false
Valor "undefined" == "" resultou em false
Se NaN em boolean representa false, e uma string vazia também, por que 'NaN == ''") resulta em false se a condiçãofalse == false
é true
??
A mesma coisa para o null e o undefined. Ambos representam false para os booleans, por que ao comparar com uma string vazia (exemplo) ele resultou em false ?
console.log(Boolean(''))
console.log(Boolean(0))
console.log(Boolean(NaN))
console.log(Boolean(null))
console.log(Boolean(undefined))
Todos dão false, mas comparar com o outro, alguns não dão certo. ex: "" == NaN.