Warum zeigt "true" == true in JavaScript "false"?
MDC beschreibt die==
Betreiber wie folgt:
Wenn die beiden Operanden nicht vom gleichen Typ sind, konvertiert JavaScript die Operanden und führt einen strengen Vergleich durch. Wenn einer der Operanden eine Zahl oder ein Boolescher Wert ist, werden die Operanden nach Möglichkeit in Zahlen konvertiert. andernfalls wird, wenn einer der Operanden eine Zeichenfolge ist, der andere Operand nach Möglichkeit in eine Zeichenfolge konvertiert.
In diesem Sinne würde ich bewerten"true" == true
wie folgt:
isNaN(Number("true")) // true
)Ist einer der Operanden eine Zeichenfolge?JaKönnen wir den anderen Operanden in einen String konvertieren?Ja (String(true) === "true" // true
)Ich bin mit den Saiten gelandet"true"
und"true"
, die auswerten sollentrue
, aber JavaScript zeigt falsch.
Was habe ich vermisst?