if, else

Möchten wir eine JavaScript Anweisung nur unter bestimmten Umständen ausführen, so können wir das Schlüsselwort if verwenden. Die Anweisung nach dem if wird nur dann ausgeführt, wenn der dem if übergebene Parameter den Wert true ergibt.

<html><body><p>
  <script type="text/javascript">
    var value1 = 4;
    if (value1 > 2) document.write("Greater 2");
  </script>
</p></body></html>
itmapa.de - X2H V 0.21

Das obige Script führt dazu, dass im zugehörigen Dokument "Greater 2" ausgegeben wird.

Möchten wir bei true mehrere Anweisungen ausführen, so können wir diese mit geschweiften Klammern zu einer Blockanweisung zusammenführen.

<html><body><p>
  <script type="text/javascript">
    var value1 = 4;
    if (value1 > 2) {
      document.write("Greater 2; ");
      document.write("Really greater 2");
    }
  </script>
</p></body></html>

itmapa.de - X2H V 0.21

Das obige Script führt dazu, dass im zugehörigen Dokument "Greater 2; Really greater 2" ausgegeben wird.

In vielen Fällen möchten wir, sofern der if-Teil nicht ausgeführt wird, eine andere Anweisung (bzw. Anweisungsblock) zur Ausführung bringen. Dies erreichen wir mit einer zur if-Anweisung gehörenden else-Anweisung.

<html><body><p>
  <script type="text/javascript">
    var value1 = 1;
    if (value1 > 2) document.write("Greater 2");
    else document.write("Lesser 2");
  </script>
</p></body></html>
itmapa.de - X2H V 0.21

Nachfolgend ein Beispiel mit einer Blockanweisung.

<html><body><p>
  <script type="text/javascript">
    var value1 = 1;
    if (value1 > 2) document.write("Greater 2");
    else {
      document.write("Lesser 2; ");
      document.write("Really lesser 2");
    }
  </script>
</p></body></html>
itmapa.de - X2H V 0.21

Die Entscheidung eine Blockanweisung in den einzelnen Teilen Teilen der if,else Struktur ist optional. Eine Entscheidung in eniem Teil führt nicht zu einer Vorbedingung des anderen Teils. Oft ist es auch sinnvoll eine einzelne Anweisung in geschweiften Klammern zu setzen. Dies ist im Besonderen der Fall, wenn wir lange Anweisungen haben und den Quelltext dadurch übersicher gestalten können.

Fallstrick: Wertezuweisung

Verwenden wir einen Ausdruck zur Bestimmung, ob eine Anweisung ausgeführt wird, so ist Vorsicht geboten. Auch wenn einer Variablen der Wert false zugewiesen wird, ist das Ergebnis der Zuweisung true. Die entsprechende Anweisung wird somit ausgeführt.

var x = 3;

if (x = 4) console.log("Part 1");
else console.log("Part 2");
itmapa.de - X2H V 0.21

Als Ergebnis wird auf der Console "Part 1" ausgegeben.

Ändern wir das Programm so, dass eine Prüfung auf Gleichheit erfolgt erhalten wir "Part 2" als Ergebnis auf der Konsole.

var x = 3;

if (x == 4) console.log("Part 1");
else console.log("Part 2");
itmapa.de - X2H V 0.21

Gleich ist nicht gleich

JavaScript kennt zwei Arten der Prüfunf auf Gleichheit:

  • Die Prüfung mit doppelten Anführungs zeichen, welche die Gleichheit der Werte prü.

  • Die Prüfung mit dreifachem Gleichheitszeichen, welche zusützlichh zum Wert noch auf Gleichheit der jeweiligen Typen prüft.

Eine Prüfung mit einem Gleichheitszeichen ist nicht definiert, da die Verwendung eines "einfachen" Gleichheitszeiches für Zuweisungen verwendet wird.

Nachfolgend ein Beispiel, wo zur Prüfung einmal doppelte und ein anderes mal dreifache Gleichheitszeichen herangezogen werden.

var valueA = "1"
var valueB = 1.0

if (valueA == valueB) console.log("A: Equals")
else console.log("B: Not equals")

if (valueA === valueB) console.log("C: Equals")
else console.log("D: Not equals")
itmapa.de - X2H V 0.21

Die Ausführung des Scrips führt zu folgender Ausgabe auf der Systemausgabe:

A: Equals
D: Not equals
            

switch

Mit Hilfe der switch - Anweisung können wir bestimmte Anweisungen in Abhängigkeit eines Ausdrucks ausführen. Der nachfolgende Quelltextabschnitt zeigt, wie in Abhängigkeit der Variablen x, ein bestimmter Bereich ausgeführt wird.

<html><body>
  <script>
    var x = 1; // Demo - Initialisierung

    switch(x) {
      case 0:
        document.write("x ist gleich 0");
        break;
      case 1:
        document.write("x ist gleich 1");
        break;
      case 2:
        document.write("x ist gleich 2");
        break;
      default:
        document.write("Default");
    }
  </script>
</body></html>
itmapa.de - X2H V 0.21

Die Ausführung des obigen Quelltextes führt dazu, dass auf der HTML Seite x ist gleich 1 ausgegeben wird.