label语句
使用label语句可以在代码中添加标签,以便将来使用。以下是label语句的语法:
label: statement
下面是一个示例:
start: for (var i=0, i<count; i++) {
alert(i)
}
这个例子中定义的start标签将来可以由break或continue语句引用。加标签的语句一般都要与for语句等循环语句配合使用。
与break或continue配合使用
break和continue语句都可以和label语句联合使用,从而返回代码块中特定的位置。这种联合使用的情况多发生在循环嵌套的情况下,如下面的例子所示:
var num = 0;
outermost:
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i === 5 && j === 5){
break outermost;
}
num++;
}
}
alert(num); //55
在这个例子中,outermost
表示外层的for循环语句。如果每个循环都正常执行10次,则num++
语句就会执行100次。但内部循环的break语句带了一个参数:要返回的标签。添加这个标签结果将导致不仅会退出内部的for循环,而且也会退出外部的for循环。为此,当变量i和j都等于5时,num的值正好是55。
同样continue语句也可以像这样和label语句联合使用。
var num = 0;
outermost:
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i === 5 && j === 5){
continue outermost;
}
num++;
}
}
alert(num); //95
虽然联用break、continue和label语句能够执行复杂的操作,但如果过度使用,也会给调试带来麻烦。在此建议,使用label语句时一定要使用描述性的标签,同时不要嵌套过多的循环。