276 Kapitel 7
Der Gleichheitsoperator
Vermutlich haben Sie gedacht, Gleichheit sei ein einfaches Thema. Schließlich
heißt es doch 1 == 1, "Wurbelspunst" == "Wurbelspunst" und true == true.
Wenn wir aber mit "99" == 99 arbeiten, geschieht noch einiges mehr. Was
passiert wohl im Gleichheitsoperator, damit das funktioniert?
Wie sich zeigt, berücksichtigt der == -Operator bei einem Vergleich die
Datentypen seiner Operanden (also der beiden Dinge, die verglichen werden).
Das lässt sich in zwei Fälle unterteilen:
99 == 99
Den Gleichheitsoperator (auch bekannt
als ==) verstehen
99 == "99"
Beim Vergleich einer Zahl mit einem
String wandelt JavaScript den String
(falls möglich) in eine Zahl um …
… und versucht dann noch einmal, zu
vergleichen. Sind beide Seiten gleich, ist
das Ergebnis true, ansonsten false.
Wenn die zu vergleichenden Werte den gleichen Datentyp haben, z. B.
zwei Zahlen oder zwei Strings, funktioniert der Vergleich wie erwartet:
Die zwei Werte werden miteinander verglichen. Sind beide Werte gleich,
ist das Ergebnis wahr (true). So weit klar.
Haben zwei Werte den gleichen Typ, vergleiche sie einfach
Dies ist der interessantere Fall. Angenommen, Sie wollen zwei Werte mit
unterschiedlichen Typen vergleichen, etwa eine Zahl und einen String. Dann
versucht JavaScript, den String in eine Zahl umzuwandeln und dann zu
vergleichen, wie hier:
Haben zwei Werte verschiedene Typen, versuche, sie in den
gleichen Typ umzuwandeln und dann zu vergleichen
Das erscheint gefühlt sinnvoll. Aber nach welchen Regeln? Was passiert, wenn
ich einen Booleschen Wert mit einer Zahl vergleiche oder andere Werttypen
kombiniere? Woher weiß ich, was hier in was umgewandelt wird? Und warum
wird die Zahl nicht in einen String umgewandelt oder irgendein anderes
Verfahren benutzt, um auf Gleichheit zu testen? Die Antworten finden Sie
in der JavaScript-Spezifikation. Hier gibt es ein paar einfache Regeln, die
beschreiben, wie die Umwandlungen funktionieren. Das ist eins dieser Dinge,
die Sie einmal verinnerlichen müssen. Danach sind Sie für den Rest Ihrer
JavaScript-Karriere obenauf.
Übrigens ist die Umwandlung
nicht dauerhaft, sondern
gilt nur für den Moment des
Vergleichs.
Hiermit sind Sie Ihren Kumpels
ein gutes Stück voraus, und das
nächste Bewerbungsgespräch
wird ein Spaziergang.

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.