你能解释一下如何在与break:switch,while,do和for交互的语句中使用标签。
请举例。
答案 0 :(得分:9)
通常,我会在breaking out to outer loops中看到它:
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
答案 1 :(得分:1)
对Mozilla开发者网络进行评论Language Reference:
提供带有标识符的语句,您可以使用break或continue语句引用该标识符。
例如,您可以使用标签来标识循环,然后使用break或continue语句来指示程序是应该中断循环还是继续执行循环。
请注意,他们也说:
标签在JavaScript中并不常用,因为它们使程序更难以理解。尽可能避免使用标签,并根据具体情况,更喜欢调用函数或抛出错误
答案 2 :(得分:1)
这是JS中GOTO标签上的一个好article。我从来没有使用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
}
答案 3 :(得分:0)
请勿使用标签。
示例:
// no label
while (condition) {
// do something
}