In JavaScript können die Operatoren == und == verwendet werden, um festzustellen, ob die beiden Werte gleich sind; Die Differenz besteht darin, dass der Operator ===, wenn die beiden beurteilten Werte inkonsistent sind, direkt falsch zurückgibt, während der == Operator nach der Typumwandlung ein Urteil fängt. Die detaillierten Urteilsregeln sind wie folgt:
=== Regeln für Beurteilungsbetreiber
1. Wenn die Arten der beiden Werte inkonsistent sind, geben Sie Falsch zurück.
2. Wenn die beiden Werte den gleichen Typ haben und die Werte gleich sind, geben Sie True zurück. Nan ist ein Sonderfall, Nan === Nan gibt falsch zurück.
3. Wenn beide Werte vom Objekttyp sind, dann wie Java, sofern die Referenzen nicht konsistent sind (die Bezugspunkte auf dieselbe Objektadresse), werden die beiden Werte als inkonsistent angesehen, und die entsprechende Operation wird falsch zurückgegeben. Erstellen Sie beispielsweise zwei neue Arrays mit genau den gleichen Inhalt und führen Sie dann die Operation === durch und geben Sie das Ergebnis auf False zurück - obwohl ihr Inhalt genau gleich ist, gehören sie immer noch zu zwei verschiedenen Objekten.
4.0 ===-0 gibt true zurück.
== Regeln für das Urteil der Betreiber
Der == Operator tippt den Wert ein und vergleichen ihn dann. Die Typ -Konvertierung folgt den folgenden Prinzipien: Konvertieren Sie sie zuerst in die Zahl und vergleichen Sie sie dann in die Zeichenfolge und vergleichen Sie sie zuerst. Die spezifischen Urteilsregeln sind wie folgt:
1. Wenn die beiden Werttypen gleich sind, kehren Sie nach der Durchführung der Operation === zurück.
2.NULL == undefiniert ist wahr.
3. True wird in 1 umgewandelt und verglichen. Falsch wird in 0 umgewandelt und verglichen.
4. Wenn einer der Werte ein Objekt ist, konvertieren Sie es in die Zahl und vergleichen Sie es mit Ausnahme des Datumsobjekts.
5. Wenn einer der Werte ein Datumsobjekt ist, konvertieren Sie es in die Zeichenfolge und vergleichen Sie es.
Experiment
Die Codekopie lautet wie folgt:
console.log ("3" === 3); // false
console.log (nan === nan); // false
var a = {x: 1, y: 2};
var b = {x: 1, y: 2};
var c = a;
console.log (a === b); // false
console.log (a === c); // true
console.log (0 === -0); // true
console.log ("3" == 3); // true
console.log (null == undefiniert); // true
console.log (true == 1); // true
console.log (true == 9); // false
console.log ([9] == 9); // true
console.log ([9] == "9"); // true
var d = neues Datum ();
var s = d.toString ();
var n = d.Valueof ();
console.log (d == s); // true
console.log (d == n); // false