今天闲着 就在看js高级程序设计 以前说看也一直没看
刚一看就发现一个从没听过的语句 label
以下是书中的描述
使用 label 语句可以在代码中添加标签,以便将来使用.
看了一下 主要是在嵌套循环中使用的 主要用来控制循环
最主要的作用可能就是 结束嵌套循环吧
下面用书中的例子做介绍
label语句
break 和 continue 语句都可以与 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); //95
上面例子 最后结果是95 因为break只是退出了内层循环 结束了i==5的时候j==5之后的内层循环 所以少了五次计数
外层循环一起结束
再看下面的例子
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
可以看到循环次数大大减少
这里将外层循环加一个标签 在内部break的时候加上这个标签 发现 i==5和j==5之后的循环都没有在进行 所以结果是55
难道是因为嵌套循环的性能问题 所以大家都避免嵌套循环才导致这个语句不常见吗
不过更可能还是是自己知识面还不够广吧 哈哈哈哈