ecmascript - javascript中label:{}这种写法常用吗?
PHPz
PHPz 2017-04-10 15:03:40
0
2
385
jsvar x, y;

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

学习是最好的投资!

reply all(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
    }
}
左手右手慢动作

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

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template