javascript中label:{}这种写法常用吗?

jsvar x, y;

outer: for (x = 0; x < 10; ++x) {
    for (y = 0; y < 10; ++y) {
       if (checkSomething(x, y)) {
           break outer;
       }
    }
}
阅读 3.8k
2 个回答

看样子 javascript 的这个语法和 java 差不多,可以参考下《带标签的 break 和 continue (java)》

不过最好还是不要用标签,通过其它办法来实现你所需要的,比如拆分函数

javascriptfunction inner(x) {
    for (y = 0; y < 10; ++y) {
       if (checkSomething(x, y)) {
           return true
       }
    }
    return false
}

for (x = 0; x < 10; ++x) {
    if (inner(x)) {
        break
    }
}

如果嵌套代码比较复杂,可以采用 throw

javascriptfunction inner(x) {
    for (y = 0; y < 10; ++y) {
       if (checkSomething(x, y)) {
           throw "done"
       }
    }
}

try {
    for (x = 0; x < 10; ++x) {
        inner(x)
    }
} catch (e) {
    if (e !== "done") {
        throw e
    }
}

不常用。但是在处理嵌套循环的时候这个东西还是蛮方便的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题