Ähnlich wie mit mathematischen Rechenausdrücken kann man in JavaScript auch mit logischen Aussagen umgehen. Als Werte werden hier aber nicht Zahlen angenommen, sondern die Wahrheitswerte true (wahr) oder false (falsch). Diese sind vom Datentyp boolean, den wir bereits früher angesprochen haben. Um logische Aussagen zu erhalten, stehen uns verschiedene Vergleichsoperatoren zur Verfügung, die wir in diesem Abschnitt kennenlernen.

Gleichheit

Wie wir im letzten Abschnitt über die Wertänderungen einer Variablen durch neue Zuweisungen gesehen haben, wird ein einfaches Gleichheitszeichen nicht als Vergleichssymbol interpretiert, sondern gibt den Befehl zur neuen Wertzuweisung. Möchten wir die Aussage treffen, dass zwei Werte gleich sind, so verwenden wir in JavaScript dafür zwei Gleichheitszeichen hintereinander.

<script>
var wahrheitswert = 3 == 3;
alert(wahrheitswert);
</script>

In diesem Codebeispiel wird der Variablen wahrheitswert der Wahrheitswert der JavaScript-Aussage 3 == 3 zugewiesen (also true). Dieser wird als Wort (also Zeichenkette) von der alert()-Funktion ausgegeben. Entsprechend bekämen wir als Ergebnis false bei der Aussage 3 == 1.

Aufpassen muss man hier, wenn Werte unterschiedlicher Datentypen miteinander verglichen werden. So ergibt beispielsweise die Aussage 3 == "3" ebenfalls den Wahrheitswert true, obwohl wir hier auf der einen Seite eine Zahl und auf der anderen Seite eine Zeichenkette haben. Hier wandelt der JavaScript-Interpreter die Zeichenkette in eine Zahl um und führt dann den Vergleich durch. Dieses Verhalten kann genau so gewünscht sein, es kann aber auch zu unerwarteten Ergebnissen führen. So sind z.B. "0" == 0 und 0 == "" beide wahr, aber "0" == "" ist natürlich nicht wahr (die eine Zeichenkette ist leer, die andere enthält die Ziffer 0 als Zeichen).

Möchte man zwei Werte darauf überprüfen, ob sie wirklich komplett identisch sind (also auch vom Datentyp her übereinstimmen), so werden dafür drei Gleichheitszeichen verwendet. Der folgende Test ergibt nun wirklich den Wahrheitswert false.

<script>
var wahrheitswert = 3 === "3";
alert(wahrheitswert);
</script>

Ungleichheit

Aus den beiden Gleichheitsoperatoren erhalten wir Ungleichheitsoperatoren, indem wir jeweils das erste Gleichheitszeichen durch ein Ausrufezeichen ersetzen. Der Code a != b heißt dann also, dass der Inhalt der Variablen a und b nach eventueller Umwandlung in denselben Typ nicht gleich ist. Die Aussage 1 != "1" ist somit falsch. Entsprechend ist 1 !== "1" aber wahr, denn hier wird die Aussage getroffen, dass die linke Seite nicht demselben Wert wie die rechte Seite entspricht oder sie nicht denselben Typ haben (hier wird also die Aussage 1 === "1"negiert).

Größenvergleiche

Bei Zahlen können wir Aussagen dadurch treffen, dass wir sie der Größe nach miteinander vergleichen. Dafür werden in JavaScript die Symbole < (strikt kleiner), <= (kleiner oder gleich), > (strikt größer) und >= (größer oder gleich) eingesetzt. Die Bedeutungen entsprechen genau denen aus der Mathematik.

Aufgabe

Stelle dem Benutzer durch ein Skript eine Frage, vergleiche die Eingabe mit der von dir erwarteten Antwort und gib das Ergebnis in einer Anzeigebox aus.