Tracks
/
JavaScript
JavaScript
/
Lehrplan
/
Bedingte Anweisungen
Be

Bedingte Anweisungen in JavaScript

42 Übungen

Über Bedingte Anweisungen

Allgemeine Syntax

Eine häufige Möglichkeit, Logik in JavaScript bedingt auszuführen, ist die if-Anweisung. Sie besteht aus dem Schlüsselwort if, einer Bedingung in runden Klammern und einem Block in geschweiften Klammern. Der Block wird nur ausgeführt, wenn die Bedingung zu true ausgewertet wird.

if (condition) {
  // code that is executed if "condition" is true
}

Du kannst sie allein verwenden oder mit dem Schlüsselwort else kombinieren.

if (condition) {
  // code that is executed if "condition" is true
} else {
  // code that is executed otherwise
}

Verschachtelte if-Anweisungen

Um eine weitere Bedingung in die else-Anweisung zu verschachteln, kannst du else if verwenden. Beachte, dass es in JavaScript kein Schlüsselwort elseif gibt. Stattdessen schreibst du else gefolgt von einer weiteren if-Anweisung.

if (condition1) {
  // code that is executed if "condition1" is true
} else if (condition2) {
  // code that is executed if "condition2" is true
  // but "condition1" was false
} else {
  // code that is executed otherwise
}

Theoretisch kannst du so viele zusätzliche Bedingungen verschachteln, wie du möchtest. In der Praxis würdest du in solchen Fällen stattdessen eine switch-Anweisung verwenden.

if (condition1) {
  // ...
} else if (condition2) {
  // ...
} else if (condition3) {
  // ...
} else if (condition4) {
  // ...
} else {
  // ...
}

Bedingung

Wenn du komplexe Bedingungen baust, schau in die Tabelle zur Operatorrangfolge, um unnötige Klammern zu vermeiden.

if (num >= 0 && num < 1) {
  // ...
}

// The inner brackets are obsolete because relational operators
// have higher precedence than logical operators.
<!-- prettier-ignore-start -->

if ((num >= 0) && (num < 1)) {
  // ...
}
<!-- prettier-ignore-end -->

Außerdem kannst du zusätzliche Variablen verwenden, um den Code lesbarer zu machen.

const isPositive = num >= 0;
const isSmall = num < 1;
if (isPositive && isSmall) {
  // ...
}

In JavaScript muss die Bedingung nicht vom Typ boolescher Wert sein. Wenn du in einem booleschen Kontext wie der if-Anweisung einen anderen Typ als boolescher Wert verwendest, wandelt JavaScript den Wert implizit in einen booleschen Wert um. Welche Werte truthy bzw. falsy sind, erfährst du im Konzept der Typkonvertierung.

const num = 4;
if (num) {
  // this code block will be executed because 4 is truthy
}

Kurzschreibweisen

Wenn du im Block für if oder else nur eine Anweisung ausführen möchtest, kannst du in JavaScript die geschweiften Klammern weglassen.

if (condition) doSomething();

// or

if (condition)
  doSomething();

Das wird zum Beispiel manchmal verwendet, um eine Fehlerbedingung zu prüfen. Im Allgemeinen ist es nicht empfehlenswert, weil es leicht passiert, dass du die Klammern nicht wieder hinzufügst, wenn du eine zweite Anweisung ergänzt, die von derselben Bedingung abhängen soll.

Wenn du Funktionen schreibst, ist es ein verbreitetes Muster, den else-Block wegzulassen und stattdessen im if-Block ein vorzeitiges return zu verwenden. In vielen Fällen verringert das die Verschachtelung und macht den Code lesbarer und leichter nachvollziehbar.

function checkNumber(num) {
  let message = '';

  if (num === 0) {
    message = 'You passed 0, please provide another number.';
  } else {
    message = 'Thanks for passing such a nice number.';
  }

  return message;
}

// Can also be written as ...
function checkNumber(num) {
  if (num === 0) {
    return 'You passed 0, please provide another number.';
  }

  return 'Thanks for passing such a nice number.';
}
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Bedingte Anweisungen