<script>
test:for (var i = 0; i < 10; i++)
{
switch (i)
{
case 5:
break test;
default:
break;
}
}
alert(i);
</script>
上面就是传说中的代码。
而后在下面的评论中,有人说这是个“闭包”。
“从小”就被js的闭包、作用域链、坡脚的OO吓坏了的我还真把它当闭包研究了一番。
研究的结果让人大跌眼镜:我去,什么jb闭包,这不就是跳转标记嘛!
稍加改动,加上注释,就明晰多了:
<script>
test:for (var i = 0; i < 10; i++)
{
test2:switch (i)
{
case 5:
break test; //跳出for循环
default:
break teset2; //跳出switch(只为演示,实为多余)
}
}
alert(i);
</script>