Por que “verdadeiro” == verdadeiro mostra falso em JavaScript?
MDC descreve o==
operador da seguinte forma:
Se os dois operandos não forem do mesmo tipo, o JavaScript converterá os operandos e aplicará uma comparação estrita. Se um dos operandos é um número ou um booleano, os operandos são convertidos em números, se possível; else se um operando for uma string, o outro operando é convertido para uma string, se possível.
Com isso em mente, eu avaliaria"true" == true
do seguinte modo:
isNaN(Number("true")) // true
)Ou é operando uma string?simPodemos converter o outro operando em uma string?sim (String(true) === "true" // true
)Acabei com as cordas"true"
e"true"
, que deve avaliar paratrue
, mas o JavaScript mostra falso.
O que eu perdi?