标签语句在任意语句前加标识符后跟冒号,如“outer: for (let i = 0; i
JavaScript 中用标签语句(label statement)配合
break或continue,就能从深层嵌套循环中直接跳出或跳过指定层级,避免靠布尔标志变量层层传递控制流。标签语句怎么写?
在任意语句(通常是循环)前加一个标识符,后跟冒号,就是标签。它本身不执行任何操作,只起标记作用:
outer: for (let i = 0; i- 标签名遵循变量命名规则,不能是保留字,且在同一作用域内唯一
- 标签只能应用于语句块(如
for、while、do...while,甚至带花括号的普通块),不能标在表达式或单条语句上用
break 标签名跳出多层循环当需要彻底退出某一层外层循环时,
break后跟对应标签名即可,控制流会直接跳转到该标签语句之后的第一条语句:outer: for (let i = 0; i <p>注意:不带标签的 <code>break</code> 只跳出最近的循环;带标签则精准定位到目标标签所在语句的结束位置。</p> <h3>用 <code>continue 标签名</code> 跳过当前外层迭代</h3> <p>如果想跳过当前外层循环本轮剩余代码、直接进入下一轮,就用 <code>continue</code> 加标签:</p> <pre class="brush:php;toolbar:false;">outer: for (let i = 0; i <p>⚠️ 注意:<code>continue 标签</code> 只对 <code>for</code>、<code>while</code>、<code>do...while</code> 有效;若标签打在普通块上(如 <code>block: { ... }</code>),<code>continue block</code> 会报语法错误。</p> <h3>常见误区和实用建议</h3>
- 标签不能跨函数作用域——函数内部定义的标签,外部无法引用
- 避免过度嵌套:标签虽能解耦,但三层以上循环往往说明逻辑可重构(比如提取为函数或用数组方法)
- 标签名要有语义:用
searchLoop、validationCheck比loop1更易维护- ESLint 默认禁用标签语句(
no-labels规则),如需启用,应在配置中明确允许并说明理由
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












