Heim  >  Artikel  >  Web-Frontend  >  Einführung in die Operatoren == und === in JavaScript_Javascript-Kenntnissen

Einführung in die Operatoren == und === in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:23:001258Durchsuche

In JavaScript können sowohl die Operatoren == als auch === verwendet werden, um zu bestimmen, ob zwei Werte gleich sind. Der Unterschied besteht darin, dass der Operator === direkt false zurückgibt. while Der Operator == wird nach der Typkonvertierung beurteilt. Die detaillierten Beurteilungsregeln lauten wie folgt:

=== Beurteilungsregeln für Betreiber

1. Wenn die Typen der beiden Werte inkonsistent sind, geben Sie false zurück.
2. Wenn die beiden Werte denselben Typ und denselben Wert haben, geben Sie true zurück. NaN ist ein Sonderfall, NaN===NaN gibt false zurück.
3. Wenn die beiden Werte beide vom Objekttyp sind, gilt wie bei Java, es sei denn, die beiden Referenzen sind konsistent (Referenzpunkte auf dieselbe Objektadresse), auch wenn der Inhalt im Objekt genau gleich ist Zwei Werte werden als inkonsistent betrachtet und die entsprechenden Operationen werden als falsch zurückgegeben. Wenn Sie beispielsweise zwei neue Arrays mit genau demselben Inhalt erstellen und die Operation === für sie ausführen, ist das Rückgabeergebnis falsch – obwohl ihre Inhalte genau gleich sind, gehören sie dennoch zu zwei verschiedenen Objekten.
4.0===-0 gibt true zurück.

==Beurteilungsregeln für Operatoren

Der Operator

== konvertiert den Typ des Werts vor dem Vergleich. Die Typkonvertierung folgt den folgenden Prinzipien: Sie wird vor dem Vergleich zunächst in eine Zahl umgewandelt, und das Datumsobjekt wird vor dem Vergleich zunächst in eine Zeichenfolge umgewandelt. Die spezifischen Beurteilungsregeln lauten wie folgt:

1. Wenn die beiden Werttypen konsistent sind, führen Sie die Operation === aus und kehren Sie zurück.
2.null==undefiniert ist wahr.
3. true wird vor dem Vergleich in 1 umgewandelt, false wird vor dem Vergleich in 0 umgewandelt.
4. Wenn einer der Werte ein Objekt ist, konvertieren Sie ihn vor dem Vergleich in eine Zahl, mit Ausnahme von Datumsobjekten.
5. Wenn einer der Werte ein Datumsobjekt ist, konvertieren Sie ihn vor dem Vergleich in eine Zeichenfolge.

Experimentieren

Code kopieren Der Code 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 = new Date();
var s = d.toString();
var n = d.valueOf();
console.log(d == s);//true
console.log(d == n);//false

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