浅谈Javascript中的Label语句

时间:2023-01-09 16:46:00
如: begin: for (var i = 0; i < 10 ; i++ ){
     alert(i);
   }

举一个比较典型的例子,看完后即明白 Label 的应用:(未添加 Label)

var num = 0;
 for (var i = 0 ; i < 10 ; i++){
   for (var j = 0 ; j < 10 ; j++){
    if( i == 5 && j == 5 ){
     break;
    }
   num++;
   }
 }
 alert(num); // 循环在 i 为5,j 为5的时候跳出 j循环,但会继续执行 i 循环,输出 95

对比使用了 Label 之后的程序:(添加 Label 后)

1
2
3
4
5
6
7
8
9
10
11
var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
  for (var j = 0 ; j < 10 ; j++){
   if( i == 5 && j == 5 ){
    break outPoint;
   }
  num++;
  }
}
alert(num); // 循环在 i 为5,j 为5的时候跳出双循环,返回到outPoint层继续执行,输出 55

对比使用了break、continue语句:

var num = 0;
  outPoint:
  for(var i = 0; i < 10; i++)
  {
   for(var j = 0; j < 10; j++)
   {
    if(i == 5 && j == 5)
    {
     continue outPoint;
     }
     num++;
   }
  }
  alert(num); //95 

从alert(num)的值可以看出,continue outPoint;语句的作用是跳出当前循环,并跳转到outPoint(标签)下的for循环继续执行。