出场:
首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务。
我们先来看看单独使用break的情况
1 for(var i=0;i<4;i++){2 for(var j=0;j<4;j++){3 if(i===1&&j===1){4 break;5 }else{6 console.log("i:"+i+"--j:"+j);7 }8 }9 }
运行结果:
1 i:0--j:0 2 i:0--j:1 3 i:0--j:2 4 i:0--j:3 5 i:1--j:0 当i和j===1的时候,它只跳出了j循环,因此它又会回到i循环体 6 i:2--j:0 7 i:2--j:1 8 i:2--j:2 9 i:2--j:310 i:3--j:011 i:3--j:112 i:3--j:213 i:3--j:3
从上面的运行结果中我们可以发现如果单纯的使用break远远不能够完成一些复杂的操作。
label标签可以是任意的名称,但不能是保留字,他们几乎是和break;continue;配合使用。
1 bk:for(var i=0;i<4;i++){2 for(var j=0;j<4;j++){3 if(i===1&&j===1){4 break bk;5 }else{6 console.log("i:"+i+"--j:"+j);7 }8 }9 }
运行结果:
1 i:0--j:02 i:0--j:13 i:0--j:24 i:0--j:35 i:1--j:0
成功跳出循环。
提试:bk只是一个名称,你随意,当然不能是js中的关键字
continue用法一样,不举例。