这个语法对于`functionName:{}`意味着什么?

时间:2015-10-06 15:50:52

标签: javascript

我在我公司的项目中找到了一段代码,如下所示:

while(condition){        
        code...

        reloop: {
            if(somethingIsTrue) {
                break reloop;
            }
        }

        code...
}

我不明白reloop做了什么,有人可以给出一个简单的解释吗?

2 个答案:

答案 0 :(得分:3)

reloop:label。它们很少使用,并且用于非常特定的目的:它们允许您从内部循环中breakcontinue 外部循环。

关于MDN的文章about labels更好地解释了这一点。

请注意,标签很少使用,并且大多数情况下需要标签提示您的代码不清楚,并且应该重新构建。我从来没有,甚至没有一次在javascript中使用过标签。

避免使用它们,除非它们是真正唯一能够证明难以编写的代码的干净解决方案。相反,我们首选将代码拆分为return来自的函数。

答案 1 :(得分:2)

reloop是块的标签。 break命令突破了标记的块。

参见例如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break