ECMAScript SPEC中的[Yield, Await, In, Return]表达的是什么

发布于 2022-09-12 01:08:35 字数 279 浏览 16 评论 0

StatementList[Return]:
ReturnStatement
ExpressionStatement
是下面的缩写
StatementList:
ReturnStatement
ExpressionStatement
StatementList_Return:
ReturnStatement
ExpressionStatement
但是并不知道,后面加一个_Return具体表达了一个什么意思
哪位大神指导一下,困惑好几天了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

摘星┃星的人 2022-09-19 01:08:35

就是把两条语法写一起了啊。表示啥意思要看它用在了什么地方。这给得找真语法看了。必然两个会有所不同(通常是用在了不同的地方),才会分成两个的。这里只是个示例,并不是真语法,没法解释区别。

另外标准里也写了,由于这种简写,可能很生成一些根本用不到的语法,忽略就好了。

比如说,FunctionBody 是带 [Yield, Await]的,一共有四个版本。

FunctionExpression 用了 FunctionBody

GeneratorBody 用了 FunctionBody_Yield

AsyncGeneratorBody 用了 FunctionBody_Yield_Await

AsyncFunctionBody 用了 FunctionBody_Await

从上面来看,没后缀的版本用于普通函数, _Yield 版本用于 Generator, _Yield_Await 版本用于 Async Generator ,_Await 版本用于 async 函数。

另外,标准里的一些 note 解释了一些参数的作用。比如_In

The [In] grammar parameter is needed to avoid confusing the in operator in a relational expression with the in operator in a for statement.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文