首页 > 解决方案 > ECMAScript 符号语法的含义?

问题描述

我对如何正确阅读此语法行感到困惑。

如何阅读这个符号?

句法

标识符名称 ::
       标识符开始
       IdentifierName IdentifierPart

标签: ecmascript-6ecmascript-next

解决方案


这是一个递归定义,在语法符号中并不少见。

IdentifierNameIdentifierStart或组成IdentifierName IdentifierPart。如果我们IdentifierName再次扩展第二种选择,我们会得到

IdentifierStart IdentifierPart
IdentifierName IdentifierPart IdentifierPart

等等。

用一种非正式的方式来表达这一点:IdentifierName由 组成,IdentifierStart后跟任意数量的IdentifierParts。


规范本身

再举一个例子,句法定义:

ArgumentList:
  AssignmentExpression
  ArgumentList,AssignmentExpression

声明 anArgumentList可以表示单个AssignmentExpression或一个ArgumentList,后跟一个逗号,然后是一个AssignmentExpression. 这个定义ArgumentList是递归的,也就是说,它是根据自身定义的。结果是 anArgumentList可以包含任何正数的参数,用逗号分隔,其中每个参数表达式都是一个AssignmentExpression. 这种非终结符的递归定义很常见。


推荐阅读