SyntaxError: label not found

breakcontinue 語句引用了包含 breakcontinue 語句的任何語句中不存在的標籤時,會發生 JavaScript 異常“label not found”。

訊息

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

錯誤型別

SyntaxError.

哪裡出錯了?

在 JavaScript 中,標籤的限制非常多:你只能將它們與 breakcontinue 語句一起使用,並且只能從標籤語句中包含的語句跳轉到它們。你無法從程式的任何位置跳轉到此標籤。

示例

不合語法的跳轉

你不能像使用 goto 一樣使用標籤。

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

相反,你只能使用標籤來增強 breakcontinue 語句的正常語義。

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

另見