Soll ein Inhalt einer Variablen verglichen werden und ja nach Inhalt dann eine Aktion ausgeführt werden, kann dies über if-Bedingungen programmiert werden. Im folgenden Beispiel wird eine Variable mit dem Namen x auf 3 gesetzt und dann verglichen, ob der Inhalt dieser Variable x der Zahl 6 entspricht. Dies ist ein Beispiel: in der Realität wird der Inhalt der Zahl aus einer Benutzereingabe oder durch eine Uhrzeit erzeugt und somit werden auch unterschiedliche Programmabläufe „passieren“. Zur Vereinfachung also diese beschriebene Aufbau:
x = 3;
if (x == 6) {
alert('Zahlen sind identisch');
}
alert (x);
Es wird nur die Variable ausgegeben aber keine Meldung erfolgen, dass die Zahlen identisch sind, da 3 nicht 6 ist. Hier eine Warnung, da dies der zweitbeliebteste Fehler in JavaScript ist (weil man vertippt sich gerne und schell. Wenn das ganze wie folgt aussieht:
x = 3;
if (x = 6) {
alert('Zahlen sind identisch');
}
alert(x);
Jetzt scheint auf einmal die Meldung, dass die Zahlen identisch sind. Und gleich als nächste Meldung erhalten wir, dass die Zahl nun 6 ist. Was ist passiert. Wir haben in der id-Bedingung keinen Vergleich mehr sondern wir weisen der Variablen x den Inhalt 6 zu. Und dieser Vorgang erzeugt immer „true“ – und sobald bei der Bedingung als Ergebnis „true“ herauskommt, werden die Zeilen zwischen den geschweiften Klammern ausgeführt.
Hier gibt es eine gute Vorgehensweise – und zwar 3 Gleichheitszeichen. Damit wird sowohl auf dem Inhalt wie auch auf den Datentyp kontrolliert!
x = 3;
if (x === 6) {
alert('Zahlen sind identisch');
}
alert(x);
Zusätzlich wollen wir nun, falls die Zahlen nicht identisch sind, die als Meldung auf dem Bildschirm sehen. Dazu können wir die id-Bedingung mit einem else-Bereich erweitern. Der Aufbau ist wieder dersselbt nach dem else kommen geschweifte Klammern, die den Bereich umschließen, der ausführt wird, wenn das else zutrifft.
x = 3;
if (x === 6) {
alert('Zahlen sind identisch');
} else {
alert('Zahlen NICHT identisch');
}
Soll auf ungleich getestet werden, sieht der Aufbau wie folgt auf:
x = 3;
if (x != 6) {
alert('Zahlen sind NICHT identisch');
} else {