根据ECMAScript 5.1规范第12.12节,可以标记任何语句 - 在简短的测试中,我的浏览器在任何语句之前接受了标签.该规范还声明标签专门用于break和continue语句,并且快速测试显示,如果它们引用的标签不引用包含它们的循环,那些语句会抛出"未定义标签"错误.
所以我的问题是:什么是非循环用语句的标签?有没有一些背景中break或者continue可以引用一个标签,是不是一个循环?
显然,break和continue语句可以在任何语句中使用:
http://docstore.mik.ua/orelly/webprog/jscript/ch06_11.htm
在这种情况下,这样的事情变得合法:
function show_alert()
{
label:
{
break label;
alert("Hello! I am an alert box!");
}
alert("hi");
}
Run Code Online (Sandbox Code Playgroud)
调用show_alert()时,仅显示"hi"警报.
据我所知,这是{}代码块的唯一用途,而不是代码样式.(这里有一个问题,没有人可以提出除可读性以外的任何东西,但我现在找不到它......)
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |