Kurz gesagt: == Konvertieren Sie den Typ zuerst und vergleichen Sie ihn dann.
=== bedeutet, dass die beiden Seiten des Vergleichs absolut gleich sein müssen
alarm (0 == ""); // Truealert (0 == false); // Truealert ("" == false); // WAHR Alert (0 === ""); // falsealSealert (0 === false); // falsealSealert ("" === false); // FALSCHSprechen wir über ===, dies ist relativ einfach, die spezifischen Vergleichsregeln sind wie folgt:
1. Wenn die Typen unterschiedlich sind, sind sie [ungleich]
2. Wenn beide numerische Werte sind und den gleichen Wert sind, dann [gleich]; (! Ausnahme) ist, wenn mindestens einer von ihnen Nan ist, dann [nicht gleich]. (Um festzustellen, ob ein Wert NAN ist, können Sie nur ISNan () verwenden, um zu beurteilen)
3. Wenn beide Saiten sind und die Zeichen in jeder Position gleich sind, dann [Gleichheit]; ansonsten [nicht gleich].
4. Wenn beide Werte wahr sind oder beides falsch sind, dann [gleich].
5. Wenn beide Werte auf das gleiche Objekt oder dieselbe Funktion beziehen, dann [Gleichheit]; ansonsten [nicht gleich].
6. Wenn beide Werte null sind oder beides undefiniert sind, dann [gleich].
Sprechen wir über ==, die spezifischen Vergleichsregeln sind wie folgt:
1. Wenn die beiden Werttypen gleich sind, führen Sie === Vergleich durch. Die Vergleichsregeln sind die gleichen wie oben.
2. Wenn die beiden Werttypen unterschiedlich sind, können sie gleich sein. Die Typumwandlung wird gemäß den folgenden Regeln durchgeführt und dann verglichen:
A. Wenn einer null ist und der andere undefiniert ist, dann [gleich].
B. Wenn einer eine Zeichenfolge ist und der andere ein numerischer Wert ist, konvertieren Sie die Zeichenfolge in einen numerischen Wert und vergleichen Sie ihn.
C. Wenn ein Wert wahr ist, konvertieren Sie ihn in 1 und vergleichen Sie ihn. Wenn ein Wert falsch ist, konvertieren Sie ihn in 0 und vergleichen Sie ihn.
D. Wenn eines ein Objekt und der andere ein numerischer oder Zeichenfolge ist, konvertieren Sie das Objekt in einen Wert des Basistyps und vergleichen Sie es dann. Konvertieren Sie ein Objekt in einen Basistyp und verwenden Sie die Methode zum ToString oder der Wertung. Die integrierte JS-Kernklasse wird versuchen, vor dem ToString zu schätzen. Die Ausnahme ist Datum, bei dem die ToString Conversion verwendet wird. Nicht-JS-Kernobjekt, sagen wir (es ist problematischer, ich verstehe nicht viel)
e. Jede andere Kombination (Array -Array usw.) ist [ungleich].