Warum sind Javascript-negative Zahlen nicht immer wahr oder falsch?

-1 == true;        //false
-1 == false        //false
-1 ? true : false; //true

Kann jemand die obige Ausgabe erklären? Ich weiß, dass ich das durch einen Vergleich mit 0 umgehen könnte, aber ich bin interessiert. Ich würde erwarten, dass mindestens eine der schlampigen equals-Anweisungen wahr ist, da sie eine implizite Typkonvertierung durchführen, und ich hätte sicher nicht erwartet, dass der Ternär ein völlig anderes Ergebnis liefert.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage