-3

这样做有什么好处吗?它会导致可读性问题吗?

4

3 回答 3

4

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

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

由于给出了强大的结构,for ... for ... in while do ... while if ... else并且能够尽早执行return几乎任何您需要标签的事情,都可以以更清晰的结构编写。

于 2013-03-25T04:15:59.943 回答
4

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

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

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

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

话虽如此,如果您有很多嵌套循环或 switch case,那么使用标签实际上确实有助于提高代码的可读性,即使它实际上可能不会影响程序本身。

以这个问题中的代码为例: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

于 2013-03-25T04:35:50.667 回答
2

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

通常,该结构将比break third_from_outer_loop;or更容易遵循continue loop_that_is_two_loops_higher

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

于 2013-03-25T04:20:24.857 回答