2013-03-25 30 views
-3

这样做是否有好处,是否会导致可读性问题?可以在javascript中使用标签中断吗?

+0

为什么投反对票?这个问题有什么不对吗? – ripu1581 2013-03-25 04:21:36

+0

(很可能是因为这种问题不符合'问某个问题,得到一个具体答案'的SO格式。问关于模糊的一般问题的问题倾向于被低估并关闭。) – 2013-03-25 04:24:37

+0

“在JavaScript中打破标签会导致可读性问题?“一个模糊的问题? – ripu1581 2013-03-25 04:26:51

回答

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循环,虽然它使用我们永远需要突破的for循环标记环路和开关的情况下可能帮助一些人。对于其他人来说,这只是一种分心。

最后归结为您的编程风格。初学者通常喜欢标注所有内容。更多的经验程序员发现太多的评论和标签烦人。

Steve Yegge实际上写了一篇关于此的完整博客文章。你可能会发现它很有趣:无意见http://steve-yegge.blogspot.in/2008/02/portrait-of-n00b.html

尝试编码:http://www.codinghorror.com/blog/2008/07/coding-without-comments.html

4

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

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

感谢给予强有力的结构,for ...for ... inwhiledo ... whileif ... else而要做到早期return几乎任何你需要一个标签可以在一个更清洁的结构写的能力。

+0

感谢@jeremy为您提供意见。是否有任何研究可以在线获得,并解释了为什么它应该很少使用中断标签? – ripu1581 2013-03-25 04:18:20

+0

没有人知道 - 但是如果你学习常规控制结构,你就会明白你真的不需要标签,如果你最终得到了一些不能简化的块,请寻求特定的帮助。 – 2013-03-25 04:23:36

2

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

通常情况下,该结构将比break third_from_outer_loop;continue loop_that_is_two_loops_higher更容易遵循。

如果您已经准备好打破最内层的最外层循环,那么为什么不早点回来呢?

相关问题