我在Douglas Crockford的书中遇到了语句、表达式、表达式语句的概念。JavaScript:好的部分。
比如Esprima解析器并没有allocate Statement,如果我理解正确的话,翻译成“directive,instruction”是正确的,而是使用ExpressionStatement。
请指出它们之间的关系以及如何正确翻译它们?
我在Douglas Crockford的书中遇到了语句、表达式、表达式语句的概念。JavaScript:好的部分。
比如Esprima解析器并没有allocate Statement,如果我理解正确的话,翻译成“directive,instruction”是正确的,而是使用ExpressionStatement。
请指出它们之间的关系以及如何正确翻译它们?
如果你参考规范,你可以找到这些概念的定义:
语句- 所有主要表达式的通用名称,如您所见,有几种类型的表达式
可以看到,ExpressionStatement只是Statement类型中的一种,这很可能是指定的解析器不单独分配Statement的原因。
反过来,一个ExpressionStatement是一个没有{ , function , class , let [
表达式语句[产量]: [前瞻∉{ { , function , class , let [ }]表达式[In, ?Yield] ;最后,Expression几乎是任何可以求值和赋值的表达式。它被定义为一个或多个以逗号分隔的AssignmentExpression 。依次可以是:三元运算符、箭头函数、yield 表达式或使用赋值运算符的表达式。
有了翻译,一切都变得更加复杂。据我所知,没有常用的翻译。维基百科有一个选项Instruction or operator。另外,在邻近的网站上有讨论