Manchmal werden drei Gleichheitszeichen (===) verwendet, wenn beurteilt wird, ob zwei Objekte gleich sind der Unterschied zwischen ihm und zwei Gleichheitszeichen (==)? Einfach ausgedrückt: Wenn bei Verwendung von „==" die Typen beider Seiten unterschiedlich sind, konvertiert die js-Engine sie in denselben Typ und vergleicht sie dann, während „===" keine Typkonvertierung durchführt Die beiden Seiten gehören nicht zum gleichen Typ, definitiv nicht gleich. Zum Beispiel:
var a = 0, b = '0'; alert((a == b) + '--' + (a === b))
Das Ergebnis, das Sie zu diesem Zeitpunkt sehen, ist „wahr–falsch“.
=== Beurteilungsregeln
Wenn die Typen unterschiedlich sind, [nicht gleich]
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)
Wenn beide Zeichenfolgen sind und die Zeichen an jeder Position gleich sind, dann [equal]; Ansonsten [nicht gleich].
Wenn beide Werte wahr oder beide falsch sind, dann [gleich].
Wenn sich zwei Werte auf dasselbe Objekt oder dieselbe Funktion beziehen, dann [gleich], andernfalls [ungleich].
Wenn beide Werte null sind oder beide undefiniert sind, dann [gleich].
== Beurteilungsregel:
Wenn die beiden Werttypen gleich sind, führen Sie einen ===-Vergleich durch.
Wenn zwei Werte unterschiedlichen Typs sind, können sie gleich sein. Führen Sie eine Typkonvertierung durch und vergleichen Sie sie dann gemäß den folgenden Regeln:
Wenn einer null und der andere undefiniert ist, dann [gleich].
Wenn einer eine Zeichenfolge und der andere ein numerischer Wert ist, konvertieren Sie die Zeichenfolge in einen numerischen Wert und vergleichen Sie ihn dann.
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.
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. Für Nicht-JS-Kernobjekte ist jede andere Kombination von
[ungleich].
Besonderes Augenmerk muss auf die Konvertierung von wahr und falsch gelegt werden, zum Beispiel:
alert(true == 1); //ture alert(true == 2); //false, true会转换成number,也就是1,当然 1 不等于 2 //可以使用 !! 来把一个数据类型转换为boolean型 alert(true == !!2) //true,!2 === false !(!=2) = !false = true
Außerdem in js, wenn eine Variable in verwendet wird Eine logische Operation. Wenn eine Variable keinen Anfangswert hat oder ihr Wert 0, -0, null, „“, falsch, undefiniert oder NaN ist, ist ihr Wert falsch. Ansonsten ist sein Wert wahr.
Das obige ist der detaillierte Inhalt vonVergleichen Sie die Nutzungsunterschiede zwischen == und ===. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!