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

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

jsvar x, y;

outer: for (x = 0; x < 10; ++x) {
    for (y = 0; y < 10; ++y) {
       if (checkSomething(x, y)) {
           break outer;
       }
    }
}

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


看样子 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
    }
}
【热门文章】
【热门文章】