Jedes Programm muss reagieren. Ein Benutzer klickt auf eine Schaltfläche. Eine API liefert Daten zurück. Ein Formularfeld wird geleert. Ohne eine Möglichkeit zur Verzweigung würde Ihr Code einfach Zeile für Zeile durchlaufen, ungeachtet dessen, was tatsächlich passiert. Bedingungen (Conditionals) geben JavaScript die Fähigkeit zur Auswahl. Sie sind die Entscheidungsträger innerhalb Ihrer Funktionen, die Wächter, die entscheiden, was ausgeführt wird und was übersprungen wird. Sobald Sie verstehen, wie man sie gut schreibt, schreiben Sie keine starren Skripte mehr, sondern entwickeln Software, die tatsächlich reagiert.

Warum Bedingungen wichtig sind

Der Kontrollfluss ist das Rückgrat der Logik. Sie verwenden Bedingungen, um Passwörter zu validieren, bevor Sie diese an einen Server senden. Sie prüfen, ob ein Warenkorb leer ist, bevor Sie die Steuer berechnen. Sie erkennen, ob eine Netzwerkanfrage fehlgeschlagen ist, damit Sie eine Fehlermeldung anstelle eines leeren Bildschirms anzeigen können. All diese Szenarien basieren auf derselben einfachen Idee: Etwas auswerten und dann entsprechend handeln.

Ohne Bedingungen wäre Ihre Anwendung eher ein Monolog als ein Gespräch. Sie könnte keine unterschiedlichen Datenszenarien verarbeiten, Fehler nicht elegant handhaben oder sinnvoll auf Benutzeraktionen reagieren. Bedingungen ermöglichen es Ihnen, zu steuern, wie Ihr Programm unter realen Unsicherheiten läuft.

Die einfache if-Anweisung

Der einfachste Einstieg ist das eigenständige if. Es besagt: Wenn diese Sache wahr ist, führe diese Arbeit aus. Das ist alles. Kein Fallback, kein alternativer Pfad.

if (x % 2 === 0) {
    console.log("Even");
}

In diesem Snippet prüft der Modulo-Operator, ob x glatt durch zwei teilbar ist. Wenn der Rest Null ist, gibt die Konsole den String aus. Wenn x ungerade ist, passiert nichts. Der Block wird ignoriert und die Ausführung fährt darunter fort.

Dieses stille Ignorieren ist wichtig. Manchmal möchten Sie nur eine einzige Aktion absichern. Vielleicht möchten Sie einer Schaltfläche nur dann eine CSS-Klasse hinzufügen, wenn sie aktiv ist, oder ein Element nur dann an ein Array anhängen, wenn die Eingabe nicht leer ist. Eine einfache if-Anweisung erledigt diese Momente, ohne Sie zu zwingen, Logik zu schreiben, die Sie gar nicht benötigen.

Eine Alternative mit if-else hinzufügen

Echte Entscheidungen haben meist zwei Seiten. Entweder ist der Benutzer alt genug, oder er ist es nicht. Entweder war die Zahlung erfolgreich, oder sie ist fehlgeschlagen. Die if-else-Struktur deckt beides ab.

if (age >= 18) {
    console.log("Adult");
} else {
    console.log("Not an Adult");
}

Der else-Block fängt alles ab, was die erste Bedingung abgelehnt hat. Er erzeugt einen sauberen binären Zweig. Dieses Muster eignet sich gut für Toggles, Berechtigungen und Feature-Flags. Halten Sie die Logik innerhalb jedes Blocks fokussiert. Wenn Sie merken, dass Sie zu viele Aufgaben in einen einzigen Zweig packen, ist das meist ein Zeichen dafür, die Arbeit in kleinere Funktionen aufzuteilen.

Mehrere Pfade mit else if prüfen

Das Leben bietet selten nur zwei Möglichkeiten. Sie müssen eine Zahl vielleicht als positiv, negativ oder Null kategorisieren. Sie müssen eventuell einen Versandtarif basierend auf Gewichtsklassen zuweisen. Für geordnete, mehrfache Vergleiche verwenden Sie else if.

if (x > 0) {
    console.log("Positive");
} else if (x < 0) {
    console.log("Negative");
} else {
    console.log("Zero");
}

JavaScript wertet diese von oben nach unten aus. Sobald eine Bedingung erfüllt ist, wird dieser Block ausgeführt und der Rest ignoriert. Die Reihenfolge ist wichtig. Wenn Sie x > 0 prüfen würden, nachdem Sie x > 100 geprüft haben, würde die strengere Prüfung niemals ausgeführt werden, da die lockerere Prüfung sie zuerst abfängt. Betrachten Sie else if als eine Prioritätenliste.

Die switch-Anweisung

Wenn Sie einen Wert mit vielen diskreten Optionen vergleichen, kann sich eine lange Kette von else if-Anweisungen repetitiv anfühlen. Eine switch-Anweisung räumt das auf. Sie gleicht einen Ausdruck mit case-Klauseln ab und führt den passenden Block aus.

switch (true) {
    case marks >= 90:
        Branch = "Computer science";
        break;
    case marks >= 80:
        Branch = "Mechanical";
        break;
    default:
        Branch = "Other";
}

Dieses Beispiel verwendet switch(true), um boolesche Bedingungen direkt auszuwerten, was ein gängiges JavaScript-Muster ist, wenn Ihre Logik auf Bereichen statt auf exakter Gleichheit basiert. Das Schlüsselwort break ist essenziell. Ohne es würde die Ausführung in den nächsten Fall "hineinfallen" (fall-through), unabhängig davon, ob er passt, was hier selten erwünscht ist. Die default-Klausel fungiert wie ein abschließendes else und fängt alles ab, was nicht in die vorherigen Fälle passte.

switch glänzt, wenn Sie klare, feste Optionen haben. Es ist oft einfacher zu überblicken als ein hoher Stapel von else if-Blöcken, besonders wenn jeder Zweig lediglich einen Wert zuweist oder eine einzelne Funktion aufruft.

Der ternäre Operator

Für kurze binäre Entscheidungen hält der ternäre Operator alles kompakt. Er nimmt drei Operanden entgegen: eine Bedingung, einen Wert, wenn wahr, und einen Wert, wenn falsch.

const result = (age >= 18) ? "Eligible" : "Not eligible";

Sie können ihn für schnelle Zuweisungen oder Inline-Returns verwenden. Er funktioniert gut, wenn das Ergebnis ein einfacher Ausdruck ist. Widerstehen Sie dem Drang, ternäre Operatoren drei Ebenen tief zu verschachteln. Ein verschachtelter ternärer Operator mag Zeilen sparen, kostet aber Lesbarkeit. Wenn Ihre Logik wächst, ist ein if-else-Block meist freundlicher zum nächsten Entwickler, der die Datei öffnet.

Verschachtelte Entscheidungen

Komplexe Logik erfordert manchmal das Stellen von Folgefragen. Man kann ein if in ein anderes if verschachteln, um eine Entscheidung zu verfeinern.

if (weather === "sunny") {
    if (temp > 30) {
        console.log("