ECMA-262文档一些定义读不懂(Let and Const Declarations)

在查看ECMA语言规范,发现他的一些定义不知道怎么理解,希望有经验的能启发一下

原文中这样写道:

Syntax

LexicalDeclaration[In, Yield, Await]:
    LetOrConst BindingList[?In, ?Yield, ?Await];

LetOrConst:
    let
    const

BindingList[In, Yield, Await]:
    LexicalBinding[?In, ?Yield, ?Await]
    BindingList[?In, ?Yield, ?Await],LexicalBinding[?In, ?Yield, ?Await]

LexicalBinding[In, Yield, Await]:
    BindingIdentifier[?Yield, ?Await]Initializer[?In, ?Yield, ?Await]opt
    BindingPattern[?Yield, ?Await]Initializer[?In, ?Yield, ?Await]

不懂后面的中括号是什么意思

BindingList : 下面是他的子集吗? 怎么还有BindingList自身...

阅读 3.2k
2 个回答

中括号是一种减少键盘磨损的缩写方式,例如1:

StatementList[Return]:
   ReturnStatement
   ExpressionStatement

是下面的缩写

StatementList:
   ReturnStatement
   ExpressionStatement
StatementList_Return:
   ReturnStatement
   ExpressionStatement

例如2:

StatementList[Return, In]:
   ReturnStatement
   ExpressionStatement

是下面的缩写

StatementList:
   ReturnStatement
   ExpressionStatement
StatementList_Return:
   ReturnStatement
   ExpressionStatement
StatementList_In:
   ReturnStatement
   ExpressionStatement
StatementList_Return_In:
   ReturnStatement
   ExpressionStatement

规范都是语法定义,不是 API 文档,看规范原文需要一定编译原理基础。如果题主就是为了看语法,当我没说。
类似问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题