Heim >Web-Frontend >js-Tutorial >Einführung in den Unterschied zwischen zwei Gleichheitszeichen und drei Gleichheitszeichen in JavaScript_Grundkenntnisse

Einführung in den Unterschied zwischen zwei Gleichheitszeichen und drei Gleichheitszeichen in JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:43:021463Durchsuche

Kurz gesagt: == Konvertieren Sie zuerst den Typ und vergleichen Sie ihn dann. === Bestimmen Sie zuerst den Typ. Wenn es sich nicht um denselben Typ handelt, ist er direkt falsch.
=== bedeutet Gleichheit, beide Seiten des Vergleichs müssen absolut gleich sein

alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true
alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

Lassen Sie uns zunächst über === sprechen. Die spezifischen Vergleichsregeln lauten wie folgt:

1. Wenn die Typen unterschiedlich sind, [nicht gleich]
2. Wenn beide numerische Werte sind und den gleichen Wert haben, dann ist [gleich] (!Ausnahme): Wenn mindestens einer von ihnen NaN ist, dann ist [nicht gleich]. (Um festzustellen, ob ein Wert NaN ist, können Sie nur isNaN() verwenden)
3. Wenn beide Zeichenfolgen sind und die Zeichen an jeder Position gleich sind, dann [gleich], andernfalls [nicht gleich].
4. Wenn beide Werte wahr oder beide falsch sind, dann [gleich].
5. Wenn sich beide Werte auf dasselbe Objekt oder dieselbe Funktion beziehen, dann [gleich], andernfalls [ungleich].
6. Wenn beide Werte null sind oder beide undefiniert sind, dann [gleich].

Was == betrifft, lauten die spezifischen Vergleichsregeln wie folgt:

1. Wenn die beiden Werttypen gleich sind, führen Sie einen ===-Vergleich durch. Die Vergleichsregeln sind dieselben wie oben
2. Wenn zwei Werttypen unterschiedlich sind, können sie gleich sein. Führen Sie die Typkonvertierung und den Vergleich gemäß den folgenden Regeln durch:
a. Wenn einer null und der andere undefiniert ist, dann [gleich].
b. Wenn einer eine Zeichenfolge und der andere ein numerischer Wert ist, konvertieren Sie die Zeichenfolge in einen numerischen Wert und vergleichen Sie ihn dann.
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 das andere ein numerischer Wert oder eine Zeichenfolge ist, konvertieren Sie das Objekt in einen Wert des Basistyps und vergleichen Sie es dann. Das Objekt wird mithilfe seiner toString- oder valueOf-Methode in den Basistyp konvertiert. Integrierte JS-Kernklassen versuchen valueOf vor toString; die Ausnahme ist Date, das die toString-Konvertierung verwendet. Nicht-js-Kernobjekte, Ling Shuo (es ist schwieriger, ich verstehe es nicht ganz)
e. Jede andere Kombination (Array-Array usw.) ist [ungleich].

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn