本文介绍JavaScript中break和continue语句使用标签(label)的特殊用法。通过为代码块添加标签,break和continue可以跳出指定层级的循环或语句块,而非仅当前最内层。文章展示了具体语法格式及在多重循环中的应用场景,帮助开发者更灵活地控制程序流程。
JavaScript中break和continue标签的用法详解
在研究某系统代码时,发现了一种特殊的代码结构(已简化):
代码如下:
var result = false;
point:
{
var obj = { key: 1 };
for (var key in obj) {
// ...
break point;
}
result = true;
}
alert(result); 乍看之下,这似乎是代码错误,甚至Visual Studio无法对此代码进行正确的格式化。但仔细分析语义,逻辑非常清晰:从for循环内部break到指定的point位置。考虑到该系统不应出现此类低级错误,且自己未曾这样使用过,遂进行了一番测试。测试结果证实,这确实是JavaScript既有的语法:break可以带位置标签。查阅相关文档后发现,continue同样支持带位置标签。
它们的语法分别为:
break [label];
continue [label];
我们知道,在循环体中,break通常只能跳出当前循环。但当break带上标签后,就能跳转到指定位置,轻松跳出多重循环。此外,switch语句中的break也可以这样使用。
参考文档:
https://developer.mozilla.org/en/JavaScript/Reference/Statements/break
https://www.jb51.net/w3school/js/pro_js_statements_break_continue.htm