这样做有什么好处,是否会导致可读性问题?
答案 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
更容易理解。
如果你准备好从最里面打破最外面的循环,那为什么不早点回来呢?