javascript实现label标签跳出循环操作


出场:

首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务。

我们先来看看单独使用break的情况

for(var i=0;i<4;i++){
  for(var j=0;j<4;j++){
    if(i===1&&j===1){
      break;
    }else{
      console.log("i:"+i+"--j:"+j);
    }
  }
}

运行结果:

i:0--j:0
i:0--j:1
i:0--j:2
i:0--j:3
i:1--j:0
当i和j===1的时候,它只跳出了j循环,因此它又会回到i循环体
i:2--j:0
i:2--j:1
i:2--j:2
i:2--j:3
i:3--j:0
i:3--j:1
i:3--j:2
i:3--j:3

从上面的运行结果中我们可以发现如果单纯的使用break远远不能够完成一些复杂的操作。

label标签可以是任意的名称,但不能是保留字,他们几乎是和break;continue;配合使用。

 bk:for(var i=0;i<4;i++){
   for(var j=0;j<4;j++){
     if(i===1&&j===1){
       break bk;
     }else{
       console.log("i:"+i+"--j:"+j);
     }
   }
 }

运行结果:

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用法一样,不举例。

很简单的例子,希望对大家的学习有所帮助。

JavaScript实现数据类型的相互转换
所有语言都有类型转化的能力,javascript也不例外,它也为开发者提供了大量的类型转化访法,本文为大家分享js实现数据类型的相互转换,具体内容如

一波JavaScript日期判断脚本分享
1、比较两个日期先后varx=newDate('2015-05-25');vary=newDate('2015-05-25');if(x.getTime()==y.getTime()){It'llbetrue;}2、是否在两个日期之间varbeforeSpringDate,afterSpringDate;for(vari=

浅谈javascript中的call、apply、bind
在JavaScript中,call、apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向,从而可以达到`接花移木`的效果。本文将对