在javascript中使用标签

时间:2012-05-28 14:11:54

标签: javascript

你能解释一下如何在与break:switch,while,do和for交互的语句中使用标签。

请举例。

4 个答案:

答案 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
}