In diesem Kapitel werden die Gleichheitssymbole und strikten Gleichheitssymbole in JavaScript ausführlich vorgestellt. Freunde in Not können sich darauf beziehen.
Javascript verfügt über zwei Methoden, um festzustellen, ob zwei Werte gleich sind.
Gleichheitssymbol
Das Gleichheitssymbol besteht aus zwei Gleichheitszeichen: ==
Javascript ist eine schwach typisierte Sprache. Das bedeutet, dass das Gleichheitssymbol den Typ umwandelt, um zwei Werte zu vergleichen.
"" == "0" // false 0 == "" // true 0 == "0" // true false == "false" // false false == "0" // true false == undefined // false false == null // false null == undefined // true " \t\r\n" == 0 // true
Der obige Code zeigt das Ergebnis der Typkonvertierung, daher wissen wir, dass die Verwendung des Gleichheitssymbols == eine schlechte Programmiergewohnheit ist. Aufgrund des komplexen Typkonvertierungsmechanismus in Javascript wird es schwierig, die daraus resultierenden Fehler aufzuspüren.
Darüber hinaus hat die Typerzwingung auch einen gewissen Einfluss auf die Leistung. Wenn beispielsweise eine Zeichenfolge mit einer Zahl verglichen wird, wird sie in eine Zahl umgewandelt.
Symbol für strikte Gleichheit
Das Symbol für strikte Gleichheit besteht aus drei Gleichheitszeichen: ===
Es funktioniert ähnlich wie das Symbol für strikte Gleichheit, jedoch wie das Symbol für strikte Gleichheit führt keine erzwungene Typkonvertierung durch.
"" === "0" // false 0 === "" // false 0 === "0" // false false === "false" // false false === "0" // false false === undefined // false false === null // false null === undefined // false " \t\r\n" === 0 // false
Der obige Code macht den Code klarer. Wenn die Typen der beiden Werte unterschiedlich sind, wird false direkt zurückgegeben, was auch die Leistung verbessert.
Vergleichen von Objekten
Obwohl == und === als Gleichheitssymbole bezeichnet werden, ist das Verhalten anders, wenn einer der beiden verglichenen Werte vom Typ Objekt ist Großer Unterschied.
{} === {}; // false new String('foo') === 'foo'; // false new Number(10) === 10; // false var foo = {}; foo === foo; // true
Hier wird nicht mehr nur verglichen, ob die beiden Werte gleich sind, sondern es wird ermittelt, ob sich die beiden Werte auf dieselbe Objektinstanz beziehen, die sich eher wie Zeiger in C verhält.
Zusammenfassung
Es wird dringend empfohlen, nur das strikte Gleichheitssymbol === zu verwenden. Wenn wir eine Typkonvertierung durchführen müssen, können wir vor dem Vergleich eine explizite Typkonvertierung durchführen, anstatt uns auf die komplexe Cast-Methode von Javascript zu verlassen.
Das Obige ist der gesamte Inhalt dieses Kapitels. Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial!