SyntaxError: label not found

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
Please take two minutes to fill out our short survey.

Die JavaScript-Ausnahme "label not found" tritt auf, wenn eine break- oder continue-Anweisung auf ein Label verweist, das bei keiner Anweisung existiert, welche die break- oder continue-Anweisung enthält.

Nachricht

SyntaxError: Undefined label 'label' (V8-based)
SyntaxError: label not found (Firefox)
SyntaxError: Cannot use the undeclared label 'label'. (Safari)

Fehlertyp

Was schiefgelaufen ist

In JavaScript sind Labels sehr eingeschränkt: Sie können sie nur mit break- und continue-Anweisungen verwenden, und Sie können nur von einer Anweisung, die innerhalb der gelabelten Anweisung enthalten ist, zu ihnen springen. Sie können aus keinem anderen Teil des Programms zu diesem Label springen.

Beispiele

Unsynktaktischer Sprung

Sie können Labels nicht wie ein goto verwenden.

js
start: console.log("Hello, world!");
console.log("Do it again");
break start;

Stattdessen können Sie Labels nur verwenden, um die normalen Semantiken von break- und continue-Anweisungen zu erweitern.

js
start: {
  console.log("Hello, world!");
  if (Math.random() > 0.5) {
    break start;
  }
  console.log("Maybe I'm logged");
}

Siehe auch