JavaScript hat zwei Möglichkeiten, um festzustellen, ob die beiden Werte gleich sind.
Gleiches Symbol
Das Gleichstellungssymbol besteht aus zwei gleichen Zeichen: ==
JavaScript ist eine schwachige Sprache. Dies bedeutet, dass gleiche Zeichen den Typ wirken, um zwei Werte zu vergleichen.
Die Codekopie lautet wie folgt:
"" == "0" // false
0 == "" // true
0 == "0" // true
false == "false" // false
false == "0" // true
false == undefiniert // false
false == null // false
NULL == undefiniert // true
"/t/r/n" == 0 // true
Der obige Code zeigt das Ergebnis der Typumwandlung, sodass wir wissen, dass die Verwendung des gleichen Zeichens eine schlechte Programmiergewohnheit ist. Aufgrund des komplexen Konvertierungsmechanismus in JavaScript werden die daraus resultierenden Fehler schwer zu verfolgen.
Darüber hinaus kann das Casting von Typen auch einen bestimmten Einfluss auf die Leistung haben, beispielsweise, wenn eine Zeichenfolge mit einer Zahl verglichen wird, wird sie auf eine Zahl gegossen.
Strenge Gleichstellungssymbol
Strenge Gleichstellungssymbol besteht aus drei gleichen Zeichen: ===
Es ähnelt der Operation gleicher Symbole, aber streng gleiche Symbole werden keine Gussoperationen durchführen.
Die Codekopie lautet wie folgt:
"" === "0" // false
0 === "" // falsch
0 === "0" // falsch
false === "false" // false
false === "0" // false
false === undefiniert // false
false === null // false
null === undefiniert // falsch
"/t/r/n" === 0 // falsch
Der obige Code macht den Code klarer. Wenn die beiden Werte unterschiedliche Typen haben, gibt sie direkt False zurück, was auch die Leistung verbessert.
Vergleichsobjekt
Obwohl == und === als gleichen Vorzeichen bezeichnet werden, ist die Leistung sehr unterschiedlich, wenn einer der beiden verglichenen Werte ein Objekt ist.
Die Codekopie lautet wie folgt:
{} === {}; // FALSCH
New String ('foo') === 'foo'; // FALSCH
neue Zahl (10) === 10; // FALSCH
var foo = {};
foo === foo; // WAHR
Hier ist es nicht mehr nur zu vergleichen, ob die beiden Werte gleich sind. Es wird bestimmen, ob sich die beiden Werte auf dieselbe Objektinstanz beziehen, die sich eher wie ein Zeiger in C verhält.
Zusammenfassen
Hier wird dringend empfohlen, nur strenge Gleichstellungssymbole === zu verwenden. Wenn wir die Typ -Konvertierung durchführen müssen, können wir vor dem Vergleich explizite Typkonvertierung durchführen, anstatt sich auf die komplexe Casting -Methode von JavaScript zu verlassen.