【问题标题】:Is there ever a good reason to use labeled Statements?是否有充分的理由使用标记语句?
【发布时间】:2013-03-19 11:22:45
【问题描述】:

在网站Mozilla 上说:

避免使用标签

标签在 JavaScript 中不是很常用,因为它们使程序更难阅读和理解。尽可能避免使用标签,根据具体情况,更喜欢调用函数或抛出错误。

是否有充分的理由使用标签?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您分享的链接包含一个通常被视为原因的用例。

    var allPass = true;
    var i, j;
    
    top:
    for (i = 0; items.length; i++)
      for (j = 0; j < tests.length; i++)
        if (!tests[j].pass(items[i])){
          allPass = false;
          break top;
        }
    

    基本上,您不需要使用额外的标志变量来提前跳出嵌套循环。

    如果您想查看它的实际效果,请在浏览器的 JavaScript 控制台中运行以下命令。

    top:
    for (i = 0; i < 100; ++i) {
        console.log("i" + i);
        for (j = 0; j < 100; ++j) {
            console.log("j" + j);
            break top;
        }
    }
    

    预期输出将是:

    i0
    j0
    

    【讨论】:

    • 我明白了!!谢谢你的帮助。
    • 可以说,更好的代码会将这些嵌套的 for 循环放入可以使用 return 的单独函数中。
    • 这取决于,如果它是一些矩阵数据结构(例如图像)的过程,嵌套循环比单独的函数更具可读性。
    猜你喜欢
    • 1970-01-01
    • 2011-07-23
    • 2013-06-04
    • 2010-10-18
    • 2010-09-16
    • 2023-03-27
    • 2018-02-11
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多