¿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:

¿Son del mismo tipo?No¿Es un operando un número o un booleano?¿Podemos convertir ambos a un número?No (isNaN(Number("true")) // true)¿Es cualquiera de los operandos una cadena?¿Podemos convertir el otro operando en una cadena? (String(true) === "true" // true)

He acabado con las cuerdas"true" y"true", que debe evaluar atrue, pero JavaScript muestra falso.

¿Qué me he perdido?

Respuestas a la pregunta(3)

Su respuesta a la pregunta