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:

Eles são do mesmo tipo?NãoOu é operando um número ou booleano?simPodemos converter ambos para um número?Não (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?

questionAnswers(3)

yourAnswerToTheQuestion