Wann immer 2 Werte true since zero is equal to zero
bewertet werden == verglichenen verwenden, führt Javascript, um die abstrakte Gleichheit Vergleichsalgorithmus.

Hier x [] und y []. Auch
typeof([]) // "object"
typeof(![]) // "boolean"
Da y eine boolesche und x ist eine Aufgabe, Zustand 7 ist der erste zu halten:
Wenn Typ (y) Boolesche ist, geben das Ergebnis des Vergleichs x == ToNummer (y).
Was ist der Wert von ToNumber (y)?
weil [] ein truthy Wert ist, Negieren macht es falsch. Nummer (false) ist 0
Jetzt haben wir den Vergleich: [] == 0.
Da typeof (0) ist "Nummer", Zustand 8 jetzt gilt:
Wenn Type (x) ist Objekt und Typ (y) ist entweder String oder Zahl, Rückgabe das Ergebnis des Vergleichs ToPrimitive (x) == y.
ToPrimitve (x) ist wie x.toString().
[].toString() // ”” - the empty string
Fast jetzt getan, was wir mit dem Vergleich stellen: „“ == 0
Nun Bedingung 5 gilt:
Wenn Type (x) String und Typ (y) Zahl, gebe das Ergebnis des Vergleichs ToNumber (x) == y zurück.
ToNumber(“”) // 0
Schließlich beiden Operanden die gleiche Art und Zustand 1 gilt. Ich denke, Sie können, wenn von hier :)
lesen Sie über Abstract Equality Comparison auf die Spezifikationen!
Es ist nichts falsch mit dieser Frage. Es verdient keine Downvotes. Wenn Sie nicht zustimmen, sollten Sie einen Kommentar mit einer Erklärung hinterlassen. – Brad
Vielleicht ließ Tim seine Schlüssel wieder fallen? – Li357
Ich habe keine Idee, warum sollte jemand dies abwerten. Es ist nicht sehr offensichtlich. +1 zu Brads Aussage – Tek