JavaScript支持带标签的break语句跳出指定外层循环;语法为在循环前加“标签名:”,break后跟相同标签名;标签仅对紧邻循环生效,区分大小写,不可用于if或普通代码块。

JavaScript 中可以用带标签的 break 语句直接跳出指定的外层循环,无需借助标志变量或函数封装。
语法结构:给循环加标签,再用 break 标签名
标签是一个合法的标识符后跟冒号(:),放在循环语句之前。注意标签不能加在花括号块上,必须紧邻循环语句(for、while、do...while)。
- 标签名区分大小写,需与
break后的名称完全一致 - 标签只对它紧邻的循环生效,不能跨跳到任意嵌套层
-
break只能跳出循环,不能跳出if或普通代码块
实际例子:两层 for 循环中跳出外层
比如查找二维数组中第一个值为 5 的元素,并立即退出所有循环:
outer: for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
if (arr[i][j] === 5) {
console.log(`found at [${i}][${j}]`);
break outer; // 直接跳出 outer 标签的 for 循环
}
}
}
// 执行到这里时,两个循环都已终止
支持的循环类型和常见误区
带标签的 break 可用于:for、for...of、for...in、while、do...while。但要注意:
立即学习“Java免费学习笔记(深入)”;
-
switch语句也能加标签,但break在其中默认只跳出switch,加标签无意义 - 不能用
break跳出函数或try...catch - 标签和循环之间不能有其他语句(如声明、表达式),否则会报语法错误
替代方案对比:为什么不用 flag 或 return?
虽然可用布尔标志或封装成函数后用 return 实现类似效果,但带标签的 break 更直接:
- 避免额外变量维护状态,减少出错可能
- 逻辑更清晰,意图明确(“从这里彻底跳出那个循环”)
- 不强制重构为函数,适合简单嵌套场景


















