var i = 0;
my_label : {
i++;
break my_label;
i = 0;
}
my_label1 : {
i++;
while(true) {
break my_label1;
}
i = 0;
}
my_label2 : {
i++;
switch (true) {
case false :
break; //作用于switch
case true :
break my_label2; //直接跳到label2的结束处
}
i = 0;
}
alert(i);
break [label] 与此类似的还有 continue [label]
break [label] 不能跨函数的语法作用域.
mylabel_3 : {
function foo(tag) {
while(tag) break my_label3; // 这里标签找不到
}
}
原因:
mylable_3 : { //.. }
function foo(tag) {
while(tag) break my_label3;
}
这个同等于上面的对象,因为它们处在不同的语法作用域中,事实上它们是并行的语法作用域。