标签语句在任意语句前加标识符后跟冒号,如“outer: for (let i = 0; i < 3; i++)”,仅作标记,配合 break 或 continue 实现跳出或跳过指定嵌套层级。

JavaScript 中用标签语句(label statement)配合 break 或 continue,就能从深层嵌套循环中直接跳出或跳过指定层级,避免靠布尔标志变量层层传递控制流。
标签语句怎么写?
在任意语句(通常是循环)前加一个标识符,后跟冒号,就是标签。它本身不执行任何操作,只起标记作用:
outer: for (let i = 0; i- 标签名遵循变量命名规则,不能是保留字,且在同一作用域内唯一
- 标签只能应用于语句块(如
for、while、do...while,甚至带花括号的普通块),不能标在表达式或单条语句上
用 break 标签名 跳出多层循环
当需要彻底退出某一层外层循环时,break 后跟对应标签名即可,控制流会直接跳转到该标签语句之后的第一条语句:
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) {
break outer; // 直接跳出最外层循环
}
console.log(i, j);
}
}
// 执行到这里,i 只遍历了 0 和 1(j 到 1 就终止)
注意:不带标签的 break 只跳出最近的循环;带标签则精准定位到目标标签所在语句的结束位置。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
用 continue 标签名 跳过当前外层迭代
如果想跳过当前外层循环本轮剩余代码、直接进入下一轮,就用 continue 加标签:
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (j === 1) {
continue outer; // 跳过当前 i 的其余 j,直接 i++
}
console.log(i, j);
}
}
// 输出:0 0, 1 0, 2 0 —— 每次 j === 1 就跳到下一个 i
⚠️ 注意:continue 标签 只对 for、while、do...while 有效;若标签打在普通块上(如 block: { ... }),continue block 会报语法错误。
常见误区和实用建议
- 标签不能跨函数作用域——函数内部定义的标签,外部无法引用
- 避免过度嵌套:标签虽能解耦,但三层以上循环往往说明逻辑可重构(比如提取为函数或用数组方法)
- 标签名要有语义:用
searchLoop、validationCheck比loop1更易维护 - ESLint 默认禁用标签语句(
no-labels规则),如需启用,应在配置中明确允许并说明理由

















