¿Por qué "true" == true se muestra falso en JavaScript?
MDC describe la==
operador de la siguiente manera:
Si los dos operandos no son del mismo tipo, JavaScript convierte los operandos y aplica una comparación estricta. Si cualquiera de los operandos es un número o un valor booleano, los operandos se convierten a números si es posible; de lo contrario, si cualquiera de los dos operandos es una cadena, el otro se convierte en una cadena si es posible.
Con esto en mente, me gustaría evaluar"true" == true
como sigue:
isNaN(Number("true")) // true
)¿Es cualquiera de los operandos una cadena?Sí¿Podemos convertir el otro operando en una cadena?Sí (String(true) === "true" // true
)He acabado con las cuerdas"true"
y"true"
, que debe evaluar atrue
, pero JavaScript muestra falso.
¿Qué me he perdido?