首页 > 解决方案 > Javascript中的原语(例如3)是技术上考虑的表达式吗?

问题描述

例如,在 Javascript 中,我知道1 + 2是一个表达式……一个返回的表达式3。由于表达式基本上意味着返回值并3返回值的事物3,因此它本身似乎3也是一个表达式。

但是,我从未见过任何简单的原始值表达式示例,所以我很好奇:在技术上3是否'foo'被认为是表达式?

标签: javascript

解决方案


根据Antlr ECMAScript 语法,anexpressionStatement由 组成expressionSequence,由 组成singleExpression,可以是 a literal。以下是相关部分:

expressionStatement
 : expressionSequence
 ;

expressionSequence
 : singleExpression ( ',' singleExpression )*
 ;

singleExpression
 : Function Identifier? '(' formalParameterList? ')' '{' functionBody '}' # FunctionExpression
 ... # Cut for brevity
 | literal                                                                # LiteralExpression
 | arrayLiteral                                                           # ArrayLiteralExpression
 | objectLiteral                                                          # ObjectLiteralExpression
 | '(' expressionSequence ')'                                             # ParenthesizedExpression
 ;

literal
 : ( NullLiteral 
   | BooleanLiteral
   | StringLiteral
   | RegularExpressionLiteral
   )
 | numericLiteral
 ;

但是,我从未见过任何简单的原始值表达式示例

这取决于您认为表达式是什么。


推荐阅读