你能解释一下如何在与 break 交互的语句上使用标签:switch、while、do 和 for。
请举例。
通常,我看到它突破到外部循环:
var i, j;
dance: for (i = 0; i < 20; i++) {
for (j = 0; j < 20; j++) {
console.log(i+'-'+j);
if (j === 10) { //normally, break only breaks the immediate loop
break dance; //this one breaks the loop labelled as dance
}
}
}
//continue here after i = 0,j = 10
这是一篇关于 JS 中的 GOTO 标签的好文章。我从不使用 GOTO 标签逻辑,所以我今天实际上也学到了一些新东西。
文章中的JS代码:
var pastures = getPastures();
var i, pastureLen = pastures.length;
pastureLoop:
for (i = 0; i < pastureLen; i++)
{
var pasture = pastures[i];
var cows = pasture.getCows();
var j, numCows = cows.length;
for (j = 0; j < numCows; j++)
{
var cow = cows[j];
if (cow.isEating())
{ continue pastureLoop; }
}
// No cows were eating, so fire the callback for pasture[i]
pasture.executeCallback(); // or whatever
}
引用 Mozilla 开发者网络 语言参考:
提供带有标识符的语句,您可以使用 break 或 continue 语句引用该标识符。
例如,您可以使用标签来标识循环,然后使用 break 或 continue 语句来指示程序是应该中断循环还是继续执行。
请注意,他们还说:
标签在 JavaScript 中不是很常用,因为它们使程序更难阅读和理解。尽可能避免使用标签,根据具体情况,更喜欢调用函数或抛出错误
不要使用标签。
例子:
// no label
while (condition) {
// do something
}