Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Comparação de valores booleanos padrão false.

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.
1 resposta
solução!

Existe uma diferença entre comparar dois valores e transformá-los em booleanos. Por exemplo, os números 12 e 24 representam true em booleano, mas não são iguais, pois o fato de serem true significa que possuem um valor atrelados, mas se esses valores são iguais ou não é diferente. O mesmo acontece nos casos que você testou, null representa false, assim como undefined, entretanto eles não são a mesma coisa.

Espero que tenha ficado claro com a comparação :)