在javascript中使用break标签是否可以?

时间:2013-03-25 04:12:55

标签: javascript readability code-readability

这样做有什么好处,是否会导致可读性问题?

3 个答案:

答案 0 :(得分:4)

虽然我不相信编码中有太多绝对,但我会说我很少在Javascript中使用标签。

事实上,我不相信我曾经使用过所有语言。

感谢给出了强大的结构,for ... for ... in while do ... while if ... else以及早期return几乎可以做任何事情的能力你需要一个标签,可以用更干净的结构书写。

答案 1 :(得分:4)

标签通常在JavaScript中用于打破外部循环。例如:

while (true) {
    while (true) {
        if (someCondition) break;
    }
}

在这个程序中,你只能从内循环中break。外环将无限循环。但有时您可能希望从外循环而不是内循环中断。您为此目的使用标签:

loop: while (true) {
    while (true) {
        if (someCondition) break loop;
    }
}

如果您有很多嵌套循环或切换案例,那么说使用标签实际上有助于代码可读性,即使它实际上可能不会影响程序本身。

以此问题中的代码为例:https://codereview.stackexchange.com/q/14532/15640

这里我们在for循环中有一个switch case,虽然它使用我们永远不需要打破for循环标记循环和switch case可能会帮助一些人。对于其他人来说,这只是一种分心。

最后,它归结为你的编程风格。初学者通常喜欢标记一切。更多经验的程序员发现太多评论和标签很烦人。

Steve Yegge实际上写了一篇关于此的博文。您可能会觉得非常有趣:http://steve-yegge.blogspot.in/2008/02/portrait-of-n00b.html

尝试不带评论的编码:http://www.codinghorror.com/blog/2008/07/coding-without-comments.html

答案 2 :(得分:2)

我很难考虑需要嵌套循环的时间,并且必须从内部打破外部名称,而不是简单地检查外部循环底部的值,以决定是否继续...

通常,该结构比break third_from_outer_loop;continue loop_that_is_two_loops_higher更容易理解。

如果你准备好从最里面打破最外面的循环,那为什么不早点回来呢?