标签语句

2018-06-16 15:23 更新

语法:

LabelledStatement : Identifier : Statement

 语义:

 一个 Statement 可以由一个标签作为前缀。标签语句仅与标签化的 break 和 continue 语句一起使用。ECMAScript 没有 goto 语句。

 如果一个 ECMAScript 程序包含有相同 Identifier 作为标签的 LabelledStatement 闭合的 LabelledStatement,那么认为它是是语法错误的 。这不适用于直接或间接嵌套在标签语句里面的 FunctionDeclaration 的 body 里出现标签的情况。

 产生式 Identifier : Statement 的解释执行方式是,先添加 Identifier 到 Statement 的标签组,再解释执行 Statement。如果 LabelledStatement 自身有一个非空标签组,这些标签还是会添加到解释执行前的 Statement 的标签组里。如果 Statement 的解释执行结果是 (break, V, L),这里的 L 等于 Identifier,则产生式的结果是 (normal, V, empty)。

 在解释执行 LabelledStatement 之前,认为包含的 Statement 拥有一个空标签组,除非它是 IterationStatement 或 SwitchStatement,这种情况下认为它拥有一个包含单个元素 empty 的标签组。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号