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