break

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die break-Anweisung beendet die aktuelle Schleife oder die switch-Anweisung und überträgt die Programmausführung an die Anweisung, die der beendeten Anweisung folgt. Sie kann auch verwendet werden, um eine gelabelte Anweisung zu überspringen, wenn sie innerhalb dieser gelabelten Anweisung verwendet wird.

Probieren Sie es aus

let i = 0;

while (i < 6) {
  if (i === 3) {
    break;
  }
  i = i + 1;
}

console.log(i);
// Expected output: 3

Syntax

js
break;
break label;
label Optional

Kennung, die mit dem Label der Anweisung verbunden ist, zu der gesprungen wird. Wenn die break-Anweisung nicht in einer Schleife oder switch verschachtelt ist, ist die Label-Kennung erforderlich.

Beschreibung

Wenn break; erreicht wird, wird das Programm aus der innersten switch- oder Schleifen-Anweisung ausgebrochen und fährt mit der nächsten Anweisung danach fort.

Wenn break label; erreicht wird, wird aus der mit label gelabelten Anweisung ausgebrochen, und das Programm führt die nächste Anweisung danach aus. Die break-Anweisung muss innerhalb des referenzierten Labels verschachtelt sein. Die gelabelte Anweisung kann jede beliebige Anweisung sein (oft eine Block-Anweisung); sie muss keine weitere Schleifenanweisung sein.

Eine break-Anweisung, mit oder ohne folgendes Label, kann nicht auf der obersten Ebene eines Skripts, Moduls, Funktionskörpers oder statischen Initialisierungsblocks verwendet werden, selbst wenn die Funktion oder Klasse weiter innerhalb einer Schleife enthalten ist.

Beispiele

break in while-Schleife

Die folgende Funktion enthält eine break-Anweisung, die die while-Schleife beendet, wenn i den Wert 3 hat, und dann den Wert 3 * x zurückgibt.

js
function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      break;
    }
    i += 1;
  }

  return i * x;
}

break in switch-Anweisungen

Der folgende Code enthält eine break-Anweisung, die die switch-Anweisung beendet, wenn ein Fall (case) übereinstimmt und der entsprechende Code ausgeführt wurde.

js
const food = "sushi";

switch (food) {
  case "sushi":
    console.log("Sushi is originally from Japan.");
    break;
  case "pizza":
    console.log("Pizza is originally from Italy.");
    break;
  default:
    console.log("I have never heard of that dish.");
    break;
}

break in gelabelten Blöcken

Der folgende Code verwendet break-Anweisungen mit gelabelten Blöcken. Durch die Verwendung von break outerBlock wird die Kontrolle an das Ende des Blockstatements übertragen, das als outerBlock gekennzeichnet ist.

js
outerBlock: {
  innerBlock: {
    console.log("1");
    break outerBlock; // breaks out of both innerBlock and outerBlock
    console.log(":-("); // skipped
  }
  console.log("2"); // skipped
}

Nicht syntaktische break-Anweisungen

Eine break-Anweisung muss innerhalb des Labels verschachtelt sein, auf das sie verweist. Der folgende Code verwendet ebenfalls break-Anweisungen mit gelabelten Blöcken, erzeugt jedoch einen Syntaxfehler, da die break-Anweisung auf block2 verweist, aber nicht innerhalb von block2 verschachtelt ist.

js
block1: {
  console.log("1");
  break block2; // SyntaxError: label not found
}

block2: {
  console.log("2");
}

Syntaxfehler werden auch durch die folgenden Codebeispiele erzeugt, die break-Anweisungen innerhalb von Funktionen verwenden, die in einer Schleife oder einem gelabelten Block verschachtelt sind, aus denen die break-Anweisungen ausbrechen sollen.

js
function testBreak(x) {
  let i = 0;

  while (i < 6) {
    if (i === 3) {
      (() => {
        break;
      })();
    }
    i += 1;
  }

  return i * x;
}

testBreak(1); // SyntaxError: Illegal break statement
js
block1: {
  console.log("1");
  (() => {
    break block1; // SyntaxError: Undefined label 'block1'
  })();
}

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-break-statement

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
break

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch