Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Experiment: Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.

if...else

BaselineWidely available

Dieif...else Anweisung führt eine Anweisung aus, wenn eine angegebene Bedingungtruthy ist. Wenn die Bedingungfalsy ist, wird eine andere Anweisung im optionalenelse-Zweig ausgeführt.

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 clauseif (condition)  statement1else  statement2
condition

Ein Ausdruck, der als entwedertruthy oderfalsy angesehen wird.

statement1

Anweisung, die ausgeführt wird, wennconditiontruthy ist. Kann jede Anweisung sein, inklusive weiterer verschachtelterif-Anweisungen. Um mehrere Anweisungen auszuführen, verwenden Sie eineBlock-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren. Um keine Anweisungen auszuführen, verwenden Sie eineleere-Anweisung.

statement2

Anweisung, die ausgeführt wird, wennconditionfalsy ist und derelse-Zweig existiert. Kann jede Anweisung sein, inklusive Block-Anweisungen und weiterer verschachtelterif-Anweisungen.

Beschreibung

Mehrereif...else-Anweisungen können verschachtelt werden, um einenelse if-Zweig zu erstellen. Beachten Sie, dass es in JavaScript keinelseif (in einem Wort) Schlüsselwort gibt.

js
if (condition1)  statement1else if (condition2)  statement2else if (condition3)  statement3// …else  statementN

Um zu sehen, wie dies funktioniert, würde es bei korrekter Einrückung der Verschachtelung so aussehen:

js
if (condition1)  statement1else  if (condition2)    statement2  else    if (condition3)      statement3// …

Um mehrere Anweisungen innerhalb eines Zweigs auszuführen, verwenden Sie eine Block-Anweisung ({ /* ... */ }), um diese Anweisungen zu gruppieren.

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

Das Nichtverwenden von Blöcken kann zu verwirrendem Verhalten führen, 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 – allerdings wird das Ausführen voncheckValue(1, 3) "a is not 1" protokollieren. Dies liegt daran, dass im Fall vondangling else derelse-Zweig mit dem nächstgelegenenif-Zweig verbunden wird. Der obige Code würde bei korrekter Einrückung folgendermaßen 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 Block-Anweisungen zu verwenden, insbesondere bei Code, der verschachtelteif-Anweisungen enthält.

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 Boolean-Wertetrue undfalse mit der Truthyness oder Falsyness desBoolean-Objekts. Jeder Wert, der nichtfalse,undefined,null,0,-0,NaN oder der leere String ("") ist, und jedes Objekt, einschließlich eines Boolean-Objekts, dessen Wertfalse ist, wird alstruthy angesehen, wenn er 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 keineelseif-Syntax in JavaScript gibt. Sie können es jedoch mit einem Leerzeichen zwischenelse undif 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 einif...else mit einer Zuweisung wiex = y als Bedingung haben:

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

Denn im Gegensatz zuwhile Schleifen wird die Bedingung nur einmal ausgewertet, sodass die Zuweisung nur einmal durchgeführt wird. Der obige Code ist äquivalent zu:

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

Was viel klarer ist. In dem seltenen Fall, dass Sie so etwas tun möchten, enthält diewhile-Dokumentation einen AbschnittVerwendung einer Zuweisung als Bedingung mit unseren Empfehlungen.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-if-statement

Browser-Kompatibilität

Siehe auch

MDN-Feedback-Box

Diese Seite wurde automatisch aus dem Englischen übersetzt.


[8]ページ先頭

©2009-2025 Movatter.jp