[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/if...else [Back]  [Original]

if...else - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

if...else

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Die if...else-Anweisung fhrt eine Anweisung aus, wenn eine angegebene Bedingung truthy ist. Wenn die Bedingung falsy ist, wird eine andere Anweisung im optionalen else-Zweig ausgefhrt.

In diesem Artikel

Probieren Sie es aus

function testNum(a) {
  let result;
  if (a > 0) {
    result = "positive";
  } else {
    result = "NOT positive";
  }
  return result;
}

console.log(testNum(-5));
// Expected output: "NOT positive"

Syntax

js
if (condition)
  statement1

// With an else clause
if (condition)
  statement1
else
  statement2
condition

Ein Ausdruck, der als entweder truthy oder falsy betrachtet wird.

statement1

Anweisung, die ausgefhrt wird, wenn condition truthy ist. Kann jede Anweisung sein, einschlielich weiterer verschachtelter if-Anweisungen. Um mehrere Anweisungen auszufhren, verwenden Sie eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszufhren, verwenden Sie eine leere-Anweisung.

statement2

Anweisung, die ausgefhrt wird, wenn condition falsy ist und der else-Zweig existiert. Kann jede Anweisung sein, einschlielich Blockanweisungen und weiteren verschachtelten if-Anweisungen.

Beschreibung

Mehrere if...else-Anweisungen knnen verschachtelt werden, um einen else if-Zweig zu erstellen. Beachten Sie, dass es in JavaScript kein elseif-Schlsselwort (in einem Wort) gibt.

js
if (condition1)
  statement1
else if (condition2)
  statement2
else if (condition3)
  statement3
// 
else
  statementN

Um zu sehen, wie dies funktioniert, sieht es bei richtiger Einrckung der Verschachtelung folgendermaen aus:

js
if (condition1)
  statement1
else
  if (condition2)
    statement2
  else
    if (condition3)
      statement3
// 

Die Bedingungen werden in der Reihenfolge ausgewertet, bis eine Bedingung zu true ausgewertet wird. Zu diesem Zeitpunkt wird die zugehrige Anweisung ausgefhrt und die restlichen else if-Zweige werden bersprungen.

Um mehrere Anweisungen innerhalb eines Zweiges auszufhren, verwenden Sie eine Blockanweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren.

js
if (condition) {
  statements1
} else {
  statements2
}

Das Nichtverwenden von Blcken kann zu verwirrendem Verhalten fhren, insbesondere wenn der Code manuell formatiert wird. Zum Beispiel:

js
function checkValue(a, b) {
  if (a === 1)
    if (b === 2)
      console.log("a is 1 and b is 2");
  else
    console.log("a is not 1");
}

Dieser Code sieht harmlos aus jedoch wird beim Ausfhren von checkValue(1, 3) "a is not 1" protokolliert. Dies liegt daran, dass im Fall von dangling else der else-Zweig mit der nchsten if-Anweisung verbunden wird. Daher wrde der obige Code, bei richtiger Einrckung, folgendermaen aussehen:

js
function checkValue(a, b) {
  if (a === 1)
    if (b === 2)
      console.log("a is 1 and b is 2");
    else
      console.log("a is not 1");
}

Im Allgemeinen ist es eine gute Praxis, immer Blockanweisungen zu verwenden, insbesondere bei Code mit verschachtelten if-Anweisungen.

js
function checkValue(a, b) {
  if (a === 1) {
    if (b === 2) {
      console.log("a is 1 and b is 2");
    }
  } else {
    console.log("a is not 1");
  }
}

Verwechseln Sie nicht die primitiven Booleschen Werte true und false mit der Truthiness oder Falsiness des Boolean-Objekts. Jeder Wert, der nicht false, undefined, null, 0, -0, NaN oder der leere String ("") ist, sowie jedes Objekt, einschlielich eines Booleschen Objekts, dessen Wert false ist, wird als truthy betrachtet, wenn es als Bedingung verwendet wird. Zum Beispiel:

js
const b = new Boolean(false);
if (b) {
  console.log("b is truthy"); // "b is truthy"
}

Beispiele

Verwendung von if...else

js
if (cipherChar === fromChar) {
  result += toChar;
  x++;
} else {
  result += clearChar;
}

Verwendung von else if

Beachten Sie, dass es in JavaScript keine elseif-Syntax gibt. Sie knnen es jedoch mit einem Leerzeichen zwischen else und if schreiben:

js
if (x > 50) {
  /* do something */
} else if (x > 5) {
  /* do something */
} else {
  /* do something */
}

Verwendung einer Zuweisung als Bedingung

Sie sollten fast nie ein if...else mit einer Zuweisung wie x = y als Bedingung haben:

js
if ((x = y)) {
  // 
}

Denn im Gegensatz zu while-Schleifen wird die Bedingung nur einmal ausgewertet, sodass die Zuweisung nur einmal ausgefhrt wird. Der obige Code ist quivalent zu:

js
x = y;
if (x) {
  // 
}

Was viel klarer ist. Sollte es jedoch in seltenen Fllen erforderlich sein, etwas hnliches zu tun, enthlt die while-Dokumentation einen Abschnitt zu Verwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-if-statement

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page