出場:
首先我們來說說為什么需要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:3 10 i:3--j:0 11 i:3--j:1 12 i:3--j:2 13 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:0 2 i:0--j:1 3 i:0--j:2 4 i:0--j:3 5 i:1--j:0
成功跳出循環。
提試:bk只是一個名稱,你隨意,當然不能是js中的關鍵字
continue用法一樣,不舉例。