SyntaxError: label not found
当 break 或 continue 语句引用了包含 break 或 continue 语句的任何语句中不存在的标签时,会发生 JavaScript 异常“label not found”。
消息
SyntaxError: Undefined label 'label' (V8-based) SyntaxError: label not found (Firefox) SyntaxError: Cannot use the undeclared label 'label'. (Safari)
错误类型
哪里出错了?
在 JavaScript 中,标签的限制非常多:你只能将它们与 break 和 continue 语句一起使用,并且只能从标签语句中包含的语句跳转到它们。你无法从程序的任何位置跳转到此标签。
示例
不合语法的跳转
你不能像使用 goto 一样使用标签。
js
start: console.log("Hello, world!");
console.log("Do it again");
break start;
相反,你只能使用标签来增强 break 和 continue 语句的正常语义。
js
start: {
console.log("Hello, world!");
if (Math.random() > 0.5) {
break start;
}
console.log("Maybe I'm logged");
}