代码之家  ›  专栏  ›  技术社区  ›  WTEDST

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

  •  1
  • WTEDST  · 技术社区  · 8 年前

    假设在解析过程的某个时刻,我已经遍历了以下语法派生:

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

    麻烦来了。根据说明书 Expression 在一个 ExpressionStatement 最终只能成为一个 AssignmentExpression 或者一系列的。然而,像

    a;
    12;
    "some text";
    

    赋值表达式

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

    1 回复  |  直到 8 年前
        1
  •  3
  •   snak    8 年前

    当你看一下 AssignmentExpression ,你会看到它解析为,例如, -&燃气轮机; ConditionalExpression -&燃气轮机; LogicalORExpression LogicalANDExpression -&燃气轮机; BitwiseORExpression -&燃气轮机; BitwiseXORExpression -&燃气轮机; BitwiseANDExpression -&燃气轮机; EqualityExpression -&燃气轮机; RelationalExpression ShiftExpression -&燃气轮机; AdditiveExpression MultiplicativeExpression -&燃气轮机; ExponentiationExpression -&燃气轮机; UnaryExpression UpdateExpression -&燃气轮机; LeftHandSideExpression -&燃气轮机; NewExpression -&燃气轮机; MemberExpression PrimaryExpression -&燃气轮机; Literal StringLiteral

    所以呢 "some text" 是有效的 . 其他文字和变量引用也是如此。