js中小知识 continue、break到外循环

138 阅读2分钟

js 看着简单,但是里面有很多很多的细节,多到我们学习过程中,很多的细节都接触不到,甚至一些有事还是挺重要的,甚至能够帮我们减少一些逻辑

有时网上看文章刷视频,总是能从一些前辈们口中得知一些小知识,每次学到都是欣喜万分,有些感觉挺有用的,因此一定要记录下来,因为不知道啥时候会用到,也不能让一些好用的 tips 失传是吧

比如前些日子看到的 continue、break 到外循环,这个有点像 c 语言的 goto 了,可能很多大佬不推荐新手使用才不让用的,实际上这个在一些场景挺好用的,尤其是刷算法需要多层遍历时,有时能减少不少麻烦

通过标签continue到外循环

//外循环前面加上一个外标签,outer: ,方便内存换continue到该标签这层
//里面循环只要两者索引加起来大于 15,也就是 idx > 6 时方可满足,也就是大于 6 时,不会打印 idx
outer: for (let idx = 0; idx < 10; idx++) {
    for (let jdx = 0; jdx < 10; jdx++) {
        if (jdx + idx > 15) {
            continue outer
        }
    }
    console.log(idx)
}

执行后,我们看看结果,也就是 continue 到外循环标签时,相当于直接跳转到 外循环 idx++那一步,然后走判断,再继续走循环

0
1
2
3
4
5
6

通过标签 break 到外循环

//外循环前面加上一个外标签,outer: ,方便内存换 break 到该标签这层
//里面循环只要两者索引加起来大于 10,也就是 idx > 1 时方可满足
outer: for (let idx = 0; idx < 10; idx++) {
    for (let jdx = 0; jdx < 10; jdx++) {
        if (jdx + idx > 10) {
            break outer;
        } 
    }
    console.log(idx);
}

打印结果如下,不多说,相对于 continue 继续执行,break直接结束了外循环

0
1