SyntaxError: 未找到标签

breakcontinue 语句引用任何包含 breakcontinue 语句的语句中不存在的标签时,就会发生 JavaScript 异常 "未找到标签"。

消息

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

错误类型

哪里出错了?

在 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");
}

另请参阅