gpt4 book ai didi

javascript - ECMAScript 中的表达式语句实际上是什么

转载 作者:行者123 更新时间:2023-11-30 11:13:38 25 4
gpt4 key购买 nike

假设在某个解析过程中,我已经遍历了以下语法推导:

Script -> ScriptBody -> StatementList -> ExpressionStatement -> Expression

麻烦来了。根据规范,ExpressionStatement 中的 Expression 只能以 AssignmentExpression 或其序列结束。但是,像

这样的语句
a;
12;
"some text";

绝对是表达式语句(据我所知),同时不是 AssignmentExpression 的任何可能子类型。它们无法解决我浏览器中的语法错误。

这些语句返回值是特定实现或引擎的特性,还是我在规范中遗漏了什么?也许,这些根本不是AssignmentExpressions,我把它们误认为是别的东西了?

最佳答案

当您查看 AssignmentExpression 的定义时,您会看到它解析为,例如 AssignmentExpression -> ConditionalExpression -> LogicalORExpression -> LogicalANDExpression -> BitwiseORExpression -> BitwiseXORExpression -> BitwiseANDExpression -> EqualityExpression -> 关系表达式 > -> ShiftExpression -> AdditiveExpression -> MultiplicativeExpression -> ExponentiationExpression -> 一元表达式 > -> 更新表达式 -> LeftHandSideExpression -> NewExpression -> MemberExpression -> PrimaryExpression > -> Literal -> StringLiteral.

因此 "some text" 是一个有效的 AssignmentExpression。其他文字和变量引用也是如此。

关于javascript - ECMAScript 中的表达式语句实际上是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52564539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com