SyntaxError: label not found

Der JavaScript-Ausnahmefehler "label not found" tritt auf, wenn eine break- oder continue-Anweisung auf ein Label verweist, das in keiner Anweisung existiert, die 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 ist schiefgelaufen?

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 innerhalb der gelabelten Anweisung enthaltenen Anweisung zu ihnen springen. Sie können nicht von irgendwo im Programm zu diesem Label springen.

Beispiele

Unsynktaktischer Sprung

Sie können Labels nicht so verwenden, als wären sie goto.

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