JavaScript 流程控制 label 和 break 语句
■知识点
在JavaScript中,使用label语句可以为一行语句添加标签,以便在复杂的结构中设置跳转目标。其语法格式如下:
label : statements
break语句能够结束当前for、for/in> while、do/while或者switch语句的执行。同时break可以接受一个可选的标签名,来决定跳出的结构语句。其语法格式如下:
break label;
如果没有设置标签名,则表示跳出当前最内层结构。
■实例设计
【示例1】下面的示例设计在客户端查找document的bgColor属性。如果完全遍历document对象,会浪费时间,因此设计一个条件,判断所枚举的属性名是否等于“bgColor”,如果相等,则使用break语句跳出循环。
for(i in document){
if(i.toStringO == "bgColor"){
document.write ("document." + i + " = " + document [i] + "<br />");
break;
}
}
在上面的代码中,break语句并非跳出当前的if结构体,而是跳出当前最内层的循环结构。
【示例2】在下面嵌套的结构中,break语句并没有跳出for/in结构,它仅仅退出了switch结构。
for(i in document){
switch(i.toString()){
case "bgColor":
document.write("document." + i + "=" + document[i] + "<br />");
break;
default:
document .write ("没有找到");
}
}
【示例3】针对示例2,可以为for/in语句定义一个标签outloop,然后在最内层的break语句中设置该标签名,这样当条件满足时就可以跳出最外层的for/iii循环结构。
outloop:for(i in document){
switch(i.toString()){
case "bgColor":
document.write("document." + i + + document[i] + "<br />");
break outloop;
default:
document .write ("没有找到”);
■小结
break语句和label语句配合使用仅限于嵌套的循环结构,或者嵌套的switch结构,且需要退出非当前层结构时。break与标签名之间不能包含换行符,否则JavaScript会解析为两个句子。
break语句的主要功能是提前结束循环或多重分支,主要用在无法预控的环境下,避免死循环或者空循环。
点击加载更多评论>>