标签如何与不是循环的语句一起使用?

8 javascript label

根据ECMAScript 5.1规范第12.12节,可以标记任何语句 - 在简短的测试中,我的浏览器在任何语句之前接受了标签.该规范还声明标签专门用于breakcontinue语句,并且快速测试显示,如果它们引用的标签不引用包含它们的循环,那些语句会抛出"未定义标签"错误.

所以我的问题是:什么是非循环用语句的标签?有没有一些背景中break或者continue可以引用一个标签,是不是一个循环?

Jef*_*eff 6

显然,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"警报.

据我所知,这是{}代码块的唯一用途,而不是代码样式.(这里有一个问题,没有人可以提出除可读性以外的任何东西,但我现在找不到它......)