Kennt ihr alle Gleichheitszeichen-Operatoren in
JavaScript? Was jeder sicherlich schon gesehen hat, sind diese beiden: = und == bzw. diesen hier: !=.
Doch damit nicht genug. Es gibt da noch einen bzw. zwei, wenn man die Negation mit aufzählt. Die sehen dann folgendermaßen aus: === und !==.
Was machen diese ganzen Zeichen denn jetzt eigentlich? Dafür gucken wir uns das ganze doch einfach mal direkt in Visual Studio an.
Am Anfang erstellen wir mal ein paar Variablen. Damit
wäre das = auch geklärt. Es dient
der Zuweisung von Werten.
Dies sollte für eine kleine Übersicht reichen. Wir
vergleichen ganz einfach den linken und rechten Wert und bekommen true oder false zurück. Was auffällt ist, dass wir eine Zeichenkette “0“ mit einer Zahl 0 vergleichen können und als
Ergebnis true erhalten. Warum
eigentlich?
Dafür gucken wir uns am besten mal die letzte Variante
an, den === Operator.
Da hat sich einiges getan, wie man unschwer erkennen kann. 0 === false ist plötzlich false und nicht mehr wie oben true. Auch andere Vergleiche haben sich geändert. Jetzt die Frage, warum das alles passiert.
Es ist eigentlich ziemlich simple. Mit == vergleichen wir die Werte mit einer Typumwandlung.
Wenn wir 0 == false vergleichen,
wandelt er einen der Werte um. False hat
den Wert 0 und die Aussage wird
wahr.
Warum ist dann aber new String("Hallo") === "Hallo" false? Es ist doch beides ein String, oder? Nicht ganz. new String() erzeugt ein Objekt. Es wird also ein Objekt mit einem String verglichen. Es sind unterschiedliche Typen und das Ergebnis somit false. Auch hier kommt nur true bei raus, wenn es sich bei beiden um Strings bzw. Objekte handelt und die Zeichenkette identisch ist.