本帖最后由 群发软件 于 2017-6-1 00:06 编辑
今天在研究某系统时发现其代码有这样一个结构(已简化):
[url=]复制代码[/url]代码如下:
var result = false;
point:
{
var obj = { key: 1 };
for (var key in obj) {
// ...
break point;
}
result = true;
}
alert(result);
咋看一下以为是代码错误,甚至于Visual Studio对此代码没办法进行正确的格式化。可是又仔细一看语意还是很清晰的,也就是从for循环内部break到指定的point这个位置,而且此系统不应该犯这样的错误的。因为自己没有这样使用过,遂进行了一番测试,测试结果果然是自己学术不精啊。。。这是javascript既有的语法,break是可带位置标签的,查阅相关文档发现continue一样也是可以带位置标签的。
他们的的语法分别为:
break [label];
continue [label];
我们知道在循环体当中break只能跳出当前循环,而当break带上了标签,就能随意跳到某位置,可轻松的跳出多重循环,此外switch中的break也是一样可以这样使用。
JavaScript break 和 continue 语句
有两种特殊的语句可用在循环内部:break 和 continue。
Break
break命令可以终止循环的运行,然后继续执行循环之后的代码(如果循环之后有代码的话)。
实例:
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
if (i==3){break}
document.write("The number is " + i)
document.write("<br />")
}
</script>
</body>
</html> |
结果:
The number is 0
The number is 1
The number is 2
Continue
continue命令会终止当前的循环,然后从下一个值继续运行。
实例:
<html>
<body>
<script type="text/javascript">
var i=0
for (i=0;i<=10;i++)
{
if (i==3){continue}
document.write("The number is " + i)
document.write("<br />")
}
</script>
</body>
</html> |
结果:
The number is 0
The number is 1
The number is 2
The number is 4
The number is 5
The number is 6
The number is 7
The number is 8
The number is 9
The number is 10
JavaScript break 结束循环JavaScript break 命令表示结束当前循环,然后继续执行循环之后的代码。break 一般配合 if 条件语句一起使用,如下例子:
<script type="text/javascript">var i=1for (i = 1; i<=10; i++) { if (i > 5) { break; } document.write(i + "<br />");}</script>
运行结果:
12345
JavaScript continue 跳过当前循环与 break 命令不同的是,JavaScript continue 跳过当前的循环(相当于本次循环无效)而继续下次循环,直到循环结束。
下面的例子演示了输出 1-10 之间的奇数:
<script type="text/javascript">var i=1for (i = 1; i<=10; i++) { if ( i % 2 == 0 ){ continue; } document.write(i + "<br />");}</script>
运行结果:
13579
提示如上例所示,不管是 break 结束循环还是 continue 跳过当前循环,需要注意执行 break/continue 命令的位置。上面输出奇数的例子,如果将 continue 命令放在 document.write 命令之后,则无法达到我们输出奇数的结果。