在平时开发中,我们可能会很少用到 label 语句,但如果熟练掌握了 label 语句的应用,可以节省不少代码。
使用 label 语句可以在代码中添加标签,以便在将来使用,语法:
label: statement
示例:
start: for (var i = 0; i < 10; i++) {
alert(i)
}
这个例子中定义的start
标签可以在将来由break
或continue
语句引用。加标签的语句一般都要雨for
语句等循环语句配合使用。
典型例子:
- 未添加 label:
var num = 0;
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
if (i == 3 && j == 3) {
break;
}
num++;
}
}
alert(num);
最后 alert(num)
打印的值为23
。这里当i == 3 && j == 3
的时候,跳出 j
循环,但是 i
循环会继续执行。
- 添加 label:
var num = 0;
start:
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
if (i == 3 && j == 3) {
break start;
}
num++;
}
}
alert(num);
最后 alert(num)
打印的值为18
。这里当i == 3 && j == 3
的时候,跳出 start
标签标记的全部循环。
- 以上例子使用的是
break
,现在使用continue
再来看看:
var num = 0;
start:
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
if (i == 3 && j == 3) {
continue start;
}
num++;
}
}
alert(num);
可以看到,最后 alert(num)
打印的值为23
。continue start
语句只跳出了 j
循环,并且跳到了 start
标签标记的循环,所以 i
循环会继续执行。
网友评论