关于 JavaScript 标签与 break 和 continue 一起使用的理解。
break 的作用是跳出代码块, 所以 break 可以使用与循环和 switch 等
continue 的作用是进入下一个迭代, 所以 continue 只能用于循环的代码块。
代码块: 基本上是{}大括号之间
然后:
1. 默认标签的情况(除了默认标签情况,其他时候必须要有名标签,否则会有惊喜)
当 break 和 continue 同时用于循环时,没有加标签,此时默认标签为当前"循环"的代码块。
当 break 用于 switch 时,默认标签为当前的 switch 代码块:
有名标签的情况
cars=["BMW","Volvo","Saab","Ford"]; list: { document.write(cars[0] + ""); document.write(cars[1] + ""); document.write(cars[2] + ""); break list; document.write(cars[3] + ""); document.write(cars[4] + ""); document.write(cars[5] + ""); }
上述break list;会跳出list的代码块。如果将break换成continue会有惊喜,违反了明确中的第二点,因为list只是个普通代码块,而不是循环。除非list写成如下形式
list:
for(var i=0; i<10; ++i) { continue list; }
有了标签,可以使用break和continue在多层循环的时候控制外层循环。
例如下面:
outerloop: for (var i = 0; i < 10; i++) { innerloop: for (var j = 0; j < 10; j++) { if (j > 3) { break; } if (i == 2) { break innerloop; } if (i == 4) { break outerloop; } document.write("i=" + i + " j=" + j + ""); } }