Warning:
This wiki has been archived and is now read-only.
ES6/annex
From HTML5 Chinese Interest Group Wiki
< ES6
Contents
附录 A 文法摘要
当前本章节的资料来源 是线上版的 ECMAScript6 由各章节的文法,于 2013-01-17 更新。因此,请注意:最新版的 ES6 的 AnnexA 都还是未整理的状态,各章节尚未完成的也不少,因此这里的内容都仅供参考。请透过右边 "English" 链接关注原文的内容。
所有图示是各式个样的注解,原文并没有这些东西。
Error creating thumbnail: Unable to save thumbnail to destination
是这一版的新语法。
无法保证定期更新本章节,还希望吸引新血 :) 可以参考规范更动纪录更新。 A.1 词法
SourceCharacter :: 任意 Unicode 编码单元
InputElementDiv :: WhiteSpace LineTerminator Comment Token DivPunctuator RightBracePunctuator
InputElementRegExp :: WhiteSpace LineTerminator Comment Token RightBracePunctuator RegularExpressionLiteralInputElementTemplateTail
Error creating thumbnail: Unable to save thumbnail to destination
::
WhiteSpace LineTerminator Comment Token DivPunctuator TemplateSubstitutionTail
WhiteSpace :: <TAB> <VT> <FF> <SP> <NBSP> <BOM> <USP>
LineTerminator :: <LF> <CR> <LS> <PS>
LineTerminatorSequence :: <LF> <CR> [lookahead ∉ <LF> ] <LS> <PS> <CR> <LF>
Comment :: MultiLineComment SingleLineComment
MultiLineComment :: /* MultiLineCommentCharsopt */
MultiLineCommentChars :: MultiLineNotAsteriskChar MultiLineCommentCharsopt * PostAsteriskCommentCharsopt
PostAsteriskCommentChars :: MultiLineNotForwardSlashOrAsteriskChar MultiLineCommentCharsopt * PostAsteriskCommentCharsopt
MultiLineNotAsteriskChar :: SourceCharacter 但非 星号 *
MultiLineNotForwardSlashOrAsteriskChar :: SourceCharacter 但非 正斜杠 / 或 星号 *
SingleLineComment :: // SingleLineCommentCharsopt
SingleLineCommentChars :: SingleLineCommentChar SingleLineCommentCharsopt
SingleLineCommentChar :: SourceCharacter 但非 LineTerminator
Token :: IdentifierName PunctuatorNumericLiteral
Error creating thumbnail: Unable to save thumbnail to destination
StringLiteralTemplate
Error creating thumbnail: Unable to save thumbnail to destination
Identifier :: IdentifierName 但非 ReservedWord
IdentifierName :: IdentifierStart IdentifierName IdentifierPart
IdentifierStart :: UnicodeIDStart $ _ \ UnicodeEscapeSequence
IdentifierPart :: UnicodeIDContinue $ _ \ UnicodeEscapeSequence <ZWNJ> <ZWJ>
UnicodeIDStart ::任何具有 Unicode 属性 “ID_Start” 的 Unicode 字符。
Error creating thumbnail: Unable to save thumbnail to destination
UnicodeIDContinue ::任何具有 Unicode 属性 “ID_Continue” 的 Unicode 字符。
Error creating thumbnail: Unable to save thumbnail to destination
ReservedWord :: Keyword FutureReservedWord NullLiteral BooleanLiteral
Keyword :: 以下之一 break delete import this case do in throw catch else instanceof tryclass export let typeof
Error creating thumbnail: Unable to save thumbnail to destination
continue finally new var const for return void debugger function super while default if switch with
FutureReservedWord :: 以下之一 enum extends 或在严格模式下以下之一implements private public yield
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
interface package protected static
Punctuator :: 以下之一 { ( ) [ ]. ; , < > <=
Error creating thumbnail: Unable to save thumbnail to destination
>= == != === !== + - * % ++ -- << >> >>> & | ^ ! ~ && || ? : = += -= *= %= <<=>>= >>>= &= |= ^= =>
Error creating thumbnail: Unable to save thumbnail to destination
DivPunctuator :: 以下之一 / /=RightBracePunctuator
Error creating thumbnail: Unable to save thumbnail to destination
::
}
NullLiteral :: null
BooleanLiteral :: true false
NumericLiteral :: DecimalLiteralBinaryIntegerLiteral
Error creating thumbnail: Unable to save thumbnail to destination
OctalIntegerLiteralError creating thumbnail: Unable to save thumbnail to destination
HexIntegerLiteral
DecimalLiteral :: DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt . DecimalDigits ExponentPartopt DecimalIntegerLiteral ExponentPartopt
DecimalIntegerLiteral :: 0 NonZeroDigit DecimalDigitsopt
DecimalDigits :: DecimalDigit DecimalDigits DecimalDigit
DecimalDigit :: 以下之一 0 1 2 3 4 5 6 7 8 9
NonZeroDigit :: 以下之一 1 2 3 4 5 6 7 8 9
ExponentPart :: ExponentIndicator SignedInteger
ExponentIndicator :: 以下之一 e E
SignedInteger :: DecimalDigits + DecimalDigits - DecimalDigitsBinaryIntegerLiteral
Error creating thumbnail: Unable to save thumbnail to destination
::
0b BinaryDigit 0B BinaryDigit BinaryIntegerLiteral BinaryDigitBinaryDigit
Error creating thumbnail: Unable to save thumbnail to destination
:: 以下之一
0 1OctalIntegerLiteral
Error creating thumbnail: Unable to save thumbnail to destination
::
0o OctalDigit 0O OctalDigit OctalIntegerLiteral OctalDigitOctalDigit
Error creating thumbnail: Unable to save thumbnail to destination
:: 以下之一
0 1 2 3 4 5 6 7HexIntegerLiteral
Error creating thumbnail: Unable to save thumbnail to destination
::
0x HexDigits 0X HexDigits
HexDigits :: HexDigit HexDigits HexDigit
HexDigit :: 以下之一 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
StringLiteral :: " DoubleStringCharactersopt " ' SingleStringCharactersopt '
DoubleStringCharacters :: DoubleStringCharacter DoubleStringCharactersopt
SingleStringCharacters :: SingleStringCharacter SingleStringCharactersopt
DoubleStringCharacter :: SourceCharacter 但非 " 或 \ 或 LineTerminator \ EscapeSequence LineContinuation
SingleStringCharacter :: SourceCharacter 但非 " 或 \ 或 LineTerminator \ EscapeSequence LineContinuation
LineContinuation :: \ LineTerminatorSequence
EscapeSequence :: CharacterEscapeSequence 0 [lookahead ∉ DecimalDigit] HexEscapeSequence UnicodeEscapeSequence
CharacterEscapeSequence :: SingleEscapeCharacter NonEscapeCharacter
SingleEscapeCharacter :: 以下之一 ' " \ b f n r t v
NonEscapeCharacter :: SourceCharacter 但非 EscapeCharacter 或 LineTerminator
EscapeCharacter :: SingleEscapeCharacter DecimalDigit x u
HexEscapeSequence :: x HexDigit HexDigit
UnicodeEscapeSequence :: u HexDigit HexDigit HexDigit HexDigitu{ HexDigits }
Error creating thumbnail: Unable to save thumbnail to destination
RegularExpressionLiteral :: / RegularExpressionBody / RegularExpressionFlags
RegularExpressionBody :: RegularExpressionFirstChar RegularExpressionChars
RegularExpressionChars :: [empty] RegularExpressionChars RegularExpressionChar
RegularExpressionFirstChar :: RegularExpressionNonTerminator 但非 * 或 \ 或 / 或 [ RegularExpressionBackslashSequence RegularExpressionClass
RegularExpressionChar :: RegularExpressionNonTerminator 但非 \ 或 / 或 [ RegularExpressionBackslashSequence RegularExpressionClass
RegularExpressionBackslashSequence :: \ RegularExpressionNonTerminator
RegularExpressionNonTerminator :: SourceCharacter 但非 LineTerminator
RegularExpressionClass :: [ RegularExpressionClassChars ]
RegularExpressionClassChars :: [empty] RegularExpressionClassChars RegularExpressionClassChar
RegularExpressionClassChar :: RegularExpressionNonTerminator 但非 ] 或 \ RegularExpressionBackslashSequence
RegularExpressionFlags :: [empty] RegularExpressionFlags IdentifierPartTemplate
Error creating thumbnail: Unable to save thumbnail to destination
::
NoSubstitutionTemplate TemplateHeadNoSubstitutionTemplate
Error creating thumbnail: Unable to save thumbnail to destination
::
` TemplateCharactersopt `TemplateHead
Error creating thumbnail: Unable to save thumbnail to destination
::
` TemplateCharactersopt ${TemplateSubstitutionTail
Error creating thumbnail: Unable to save thumbnail to destination
::
TemplateMiddle TemplateTailTemplateMiddle
Error creating thumbnail: Unable to save thumbnail to destination
::
} TemplateCharactersopt ${TemplateTail
Error creating thumbnail: Unable to save thumbnail to destination
::
} TemplateCharactersopt `TemplateCharacters
Error creating thumbnail: Unable to save thumbnail to destination
::
TemplateCharacter TemplateCharactersoptTemplateCharacter
Error creating thumbnail: Unable to save thumbnail to destination
::
SourceCharacter 但非 ` 或 \ 或 $ $ [lookahead ∉ {{} ] \ EscapeSequence LineContinuation
A.2 数字转换
StringNumericLiteral ::: StrWhiteSpaceopt StrWhiteSpaceopt StrNumericLiteral StrWhiteSpaceopt
StrWhiteSpace ::: StrWhiteSpaceChar StrWhiteSpaceopt
StrWhiteSpaceChar ::: WhiteSpace LineTerminator
StrNumericLiteral ::: StrDecimalLiteral HexIntegerLiteral
StrDecimalLiteral ::: StrUnsignedDecimalLiteral + StrUnsignedDecimalLiteral - StrUnsignedDecimalLiteral
StrUnsignedDecimalLiteral ::: Infinity DecimalDigits . DecimalDigitsopt ExponentPartopt . DecimalDigits ExponentPartopt DecimalDigits ExponentPartoptDecimalDigits
Error creating thumbnail: Unable to save thumbnail to destination
::: 以下之一
DecimalDigit DecimalDigits DecimalDigit
DecimalDigit ::: 以下之一 0 1 2 3 4 5 6 7 8 9
ExponentPart ::: ExponentIndicator SignedInteger
ExponentIndicator ::: 以下之一 e E
SignedInteger ::: DecimalDigits + DecimalDigits - DecimalDigits
HexIntegerLiteral ::: 0x HexDigit 0X HexDigit HexIntegerLiteral HexDigit
HexDigit ::: 以下之一 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F
A.3 表达式
PrimaryExpression : this Identifier Literal ArrayInitialiser ObjectLiteral FunctionExpressionClassExpression
Error creating thumbnail: Unable to save thumbnail to destination
GeneratorExpressionError creating thumbnail: Unable to save thumbnail to destination
GeneratorComprehensionError creating thumbnail: Unable to save thumbnail to destination
RegularExpressionLiteralTemplateLiteral
Error creating thumbnail: Unable to save thumbnail to destination
CoverParenthesizedExpressionAndArrowParameterListError creating thumbnail: Unable to save thumbnail to destination
CoverParenthesizedExpressionAndArrowParameterList : ( Expression ) ( ) ( ... Identifier ) ( Expression , ... Identifier )
ParenthesizedExpression产生式 PrimaryExpression : CoverParenthesized... 中在 CoverParenthesizedExpressionAndArrowParameterList 上用的补充语法 : ( Expression )
Literal : NullLiteral ValueLiteral
ValueLiteral : BooleanLiteral NumericLiteral StringLiteral
ArrayInitialiser : ArrayLiteralArrayComprehension
Error creating thumbnail: Unable to save thumbnail to destination
ArrayLiteral : [ Elisionopt ] [ ElementList ] [ ElementList , Elisionopt ]
ElementList : Elisionopt AssignmentExpressionElisionopt SpreadElement
Error creating thumbnail: Unable to save thumbnail to destination
ElementList , Elisionopt AssignmentExpressionElementList , Elisionopt SpreadElement
Error creating thumbnail: Unable to save thumbnail to destination
Elision : , Elision ,SpreadElement
Error creating thumbnail: Unable to save thumbnail to destination
:
... AssignmentExpressionArrayComprehension
Error creating thumbnail: Unable to save thumbnail to destination
:
[ AssignmentExpression ComprehensionForList ] [ AssignmentExpression ComprehensionForList if Expression ]ComprehensionForList
Error creating thumbnail: Unable to save thumbnail to destination
:
ComprehensionFor ComprehensionForList ComprehensionForComprehensionFor
Error creating thumbnail: Unable to save thumbnail to destination
:
for ForBinding of ExpressionForBinding
Error creating thumbnail: Unable to save thumbnail to destination
:
BindingIdentifier BindingPattern
ObjectLiteral : { } { PropertyDefinitionList } { PropertyDefinitionList , }
PropertyDefinitionList : PropertyDefinition PropertyDefinitionList , PropertyDefinition
PropertyDefinition :IdentifierName
Error creating thumbnail: Unable to save thumbnail to destination
CoverInitialisedNameError creating thumbnail: Unable to save thumbnail to destination
PropertyName : AssignmentExpression MethodDefinition
PropertyName : IdentifierName StringLiteralNumericLiteral
Error creating thumbnail: Unable to save thumbnail to destination
CoverInitialisedNameError creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
:
IdentifierName Initialiser
Initialiser : = AssignmentExpressionGeneratorComprehension
Error creating thumbnail: Unable to save thumbnail to destination
:
( Expression ComprehensionForList ) ( Expression ComprehensionForList if Expression )TemplateLiteral
Error creating thumbnail: Unable to save thumbnail to destination
:
NoSubstitutionTemplateTemplateHead Expression
Error creating thumbnail: Unable to save thumbnail to destination
[Lexical goal InputElementTemplateTail ] TemplateSpans
TemplateSpansError creating thumbnail: Unable to save thumbnail to destination
:
TemplateTail TemplateMiddleList [Lexical goal InputElementTemplateTail ] TemplateTailTemplateMiddleList
Error creating thumbnail: Unable to save thumbnail to destination
:
TemplateMiddle Expression TemplateMiddleList [Lexical goal InputElementTemplateTail ] TemplateMiddle Expression
MemberExpression : [Lexical goal InputElementRegExp ] PrimaryExpression MemberExpression [ Expression ] MemberExpression . IdentifierNameMemberExpression TemplateLiteral
Error creating thumbnail: Unable to save thumbnail to destination
super [ Expression ]Error creating thumbnail: Unable to save thumbnail to destination
super . IdentifierNameError creating thumbnail: Unable to save thumbnail to destination
new MemberExpression Arguments
NewExpression : MemberExpression new NewExpressionCallExpression
Error creating thumbnail: Unable to save thumbnail to destination
:
MemberExpression Argumentssuper Arguments
Error creating thumbnail: Unable to save thumbnail to destination
CallExpression Arguments CallExpression [ Expression ] CallExpression . IdentifierNameCallExpression TemplateLiteral
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
Arguments : ( ) ( ArgumentList )
ArgumentList : AssignmentExpression... AssignmentExpression
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
ArgumentList , AssignmentExpressionArgumentList , ... AssignmentExpression
Error creating thumbnail: Unable to save thumbnail to destination
LeftHandSideExpression : NewExpression CallExpression
PostfixExpression : LeftHandSideExpression LeftHandSideExpression [no LineTerminator here] ++ LeftHandSideExpression [no LineTerminator here] --
UnaryExpression : PostfixExpression delete UnaryExpression void UnaryExpression typeof UnaryExpression ++ UnaryExpression -- UnaryExpression + UnaryExpression - UnaryExpression ~ UnaryExpression ! UnaryExpression
MultiplicativeExpression : UnaryExpression MultiplicativeExpression * UnaryExpression MultiplicativeExpression / UnaryExpression MultiplicativeExpression % UnaryExpression
AdditiveExpression : MultiplicativeExpression AdditiveExpression + MultiplicativeExpression AdditiveExpression - MultiplicativeExpression
ShiftExpression : AdditiveExpression ShiftExpression << AdditiveExpression ShiftExpression >> AdditiveExpression ShiftExpression >>> AdditiveExpression
RelationalExpression : ShiftExpression RelationalExpression < ShiftExpression RelationalExpression > ShiftExpression RelationalExpression <= ShiftExpression RelationalExpression >= ShiftExpression RelationalExpression instanceof ShiftExpression RelationalExpression in ShiftExpression
RelationalExpressionNoIn : ShiftExpression RelationalExpressionNoIn < ShiftExpression RelationalExpressionNoIn > ShiftExpression RelationalExpressionNoIn <= ShiftExpression RelationalExpressionNoIn >= ShiftExpression RelationalExpressionNoIn instanceof ShiftExpression
EqualityExpression : RelationalExpression EqualityExpression == RelationalExpression EqualityExpression != RelationalExpression EqualityExpression === RelationalExpression EqualityExpression !== RelationalExpressionEqualityExpression [no LineTerminator here] is RelationalExpression
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
EqualityExpression [no LineTerminator here] isnt RelationalExpressionError creating thumbnail: Unable to save thumbnail to destination
EqualityExpressionNoIn : RelationalExpressionNoIn EqualityExpressionNoIn == RelationalExpressionNoIn EqualityExpressionNoIn != RelationalExpressionNoIn EqualityExpressionNoIn === RelationalExpressionNoIn EqualityExpressionNoIn !== RelationalExpressionNoInEqualityExpression
Error creating thumbnail: Unable to save thumbnail to destination
[no LineTerminator here] is RelationalExpressionError creating thumbnail: Unable to save thumbnail to destination
EqualityExpression [no LineTerminator here] isnt RelationalExpressionError creating thumbnail: Unable to save thumbnail to destination
BitwiseANDExpression : EqualityExpression BitwiseANDExpression & EqualityExpression
BitwiseANDExpressionNoIn : EqualityExpressionNoIn BitwiseANDExpressionNoIn & EqualityExpressionNoIn
BitwiseXORExpression : BitwiseANDExpression BitwiseXORExpression ^ BitwiseANDExpression
BitwiseXORExpressionNoIn : BitwiseANDExpressionNoIn BitwiseXORExpressionNoIn ^ BitwiseANDExpressionNoIn
BitwiseORExpression : BitwiseXORExpression BitwiseORExpression | BitwiseXORExpression
BitwiseORExpressionNoIn : BitwiseXORExpressionNoIn BitwiseORExpressionNoIn | BitwiseXORExpressionNoIn
LogicalANDExpression : BitwiseORExpression LogicalANDExpression && BitwiseORExpression
LogicalANDExpressionNoIn : BitwiseORExpressionNoIn LogicalANDExpressionNoIn && BitwiseORExpressionNoIn
LogicalORExpression : LogicalANDExpression LogicalORExpression || LogicalANDExpression
LogicalORExpressionNoIn : LogicalANDExpressionNoIn LogicalORExpressionNoIn || LogicalANDExpressionNoIn
ConditionalExpression : LogicalORExpression LogicalORExpression ? AssignmentExpression : AssignmentExpression
ConditionalExpressionNoIn : LogicalORExpressionNoIn LogicalORExpressionNoIn ? AssignmentExpression : AssignmentExpressionNoIn
AssignmentExpression : ConditionalExpressionYieldExpression
Error creating thumbnail: Unable to save thumbnail to destination
ArrowFunctionError creating thumbnail: Unable to save thumbnail to destination
LeftHandSideExpression = AssignmentExpressionError creating thumbnail: Unable to save thumbnail to destination
LeftHandSideExpression AssignmentOperator AssignmentExpression
AssignmentExpressionNoIn : ConditionalExpressionNoIn YieldExpression ArrowFunction LeftHandSideExpression = AssignmentExpressionNoIn LeftHandSideExpression AssignmentOperator AssignmentExpressionNoIn
AssignmentOperator : 以下之一 *= /= %= += -= <<= >>= >>>= &= ^= |=AssignmentPattern产生式 AssignmentExpression : LeftHandSideExpression = AssignmentExpression 中在 LeftHandSideExpression 上用的补充语法
Error creating thumbnail: Unable to save thumbnail to destination
:
ObjectAssignmentPattern ArrayAssignmentPatternObjectAssignmentPattern
Error creating thumbnail: Unable to save thumbnail to destination
:
{ } { AssignmentPropertyList } { AssignmentPropertyList , }ArrayAssignmentPattern
Error creating thumbnail: Unable to save thumbnail to destination
:
[ Elisionopt AssignmentRestElementopt ] [ AssignmentElementList ] [ AssignmentElementList , Elisionopt AssignmentRestElementopt ]AssignmentPropertyList
Error creating thumbnail: Unable to save thumbnail to destination
:
AssignmentProperty AssignmentPropertyList , AssignmentPropertyAssignmentElementList
Error creating thumbnail: Unable to save thumbnail to destination
:
Elisionopt AssignmentElement AssignmentElementList , Elisionopt AssignmentElementAssignmentProperty
Error creating thumbnail: Unable to save thumbnail to destination
:
Identifier InitialiseroptPropertyName : AssignmentElement
Error creating thumbnail: Unable to save thumbnail to destination
AssignmentElementError creating thumbnail: Unable to save thumbnail to destination
:
DestructuringAssignmentTarget InitialiseroptAssignmentRestElement
Error creating thumbnail: Unable to save thumbnail to destination
:
... DestructuringAssignmentTargetDestructuringAssignmentTarget
Error creating thumbnail: Unable to save thumbnail to destination
:
LeftHandSideExpression
Expression : AssignmentExpression Expression , AssignmentExpression
ExpressionNoIn : AssignmentExpressionNoIn ExpressionNoIn , AssignmentExpressionNoIn
A.4 语句
Statement : BlockStatement VariableStatement EmptyStatement ExpressionStatement IfStatement BreakableStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement ThrowStatement TryStatement DebuggerStatement
Declaration : FunctionDeclarationGeneratorDeclaration
Error creating thumbnail: Unable to save thumbnail to destination
ClassDeclarationError creating thumbnail: Unable to save thumbnail to destination
LexicalDeclarationError creating thumbnail: Unable to save thumbnail to destination
BreakableStatement : IterationStatement SwitchStatement
BlockStatement : Block
Block : { StatementListopt }
StatementList : StatementListItem StatementList StatementListItem
StatementListItem : StatementDeclaration
Error creating thumbnail: Unable to save thumbnail to destination
LexicalDeclarationError creating thumbnail: Unable to save thumbnail to destination
:
LetOrConst BindingList ;LexicalDeclarationNoIn
Error creating thumbnail: Unable to save thumbnail to destination
:
LetOrConst BindingListNoInLetOrConst
Error creating thumbnail: Unable to save thumbnail to destination
:
let constBindingList
Error creating thumbnail: Unable to save thumbnail to destination
:
LexicalBinding BindingList , LexicalBindingBindingListNoIn
Error creating thumbnail: Unable to save thumbnail to destination
:
LexicalBindingNoIn BindingListNoIn , LexicalBindingNoInLexicalBinding
Error creating thumbnail: Unable to save thumbnail to destination
:
BindingIdentifier Initialiseropt BindingPattern InitialiserLexicalBindingNoIn
Error creating thumbnail: Unable to save thumbnail to destination
:
BindingIdentifier InitialiserNoInopt BindingPattern InitialiserNoInBindingIdentifier
Error creating thumbnail: Unable to save thumbnail to destination
:
Identifier
InitialiserNoIn : = AssignmentExpressionNoIn
VariableStatement : var VariableDeclarationList ;
VariableDeclarationList : VariableDeclaration VariableDeclarationList , VariableDeclaration
VariableDeclarationListNoIn : VariableDeclarationNoIn VariableDeclarationListNoIn , VariableDeclarationNoIn
VariableDeclaration : BindingIdentifier InitialiseroptBindingPattern Initialiser
Error creating thumbnail: Unable to save thumbnail to destination
VariableDeclarationNoIn : BindingIdentifier InitialiserNoInoptBindingPattern InitialiserNoIn
Error creating thumbnail: Unable to save thumbnail to destination
BindingPatternError creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
:
ObjectBindingPattern ArrayBindingPatternObjectBindingPattern
Error creating thumbnail: Unable to save thumbnail to destination
:
{ } { BindingPropertyList } { BindingPropertyList , }ArrayBindingPattern
Error creating thumbnail: Unable to save thumbnail to destination
:
[ Elisionopt BindingRestElementopt ] [ BindingElementList ] [ BindingElementList , Elisionopt BindingRestElementopt ]BindingPropertyList
Error creating thumbnail: Unable to save thumbnail to destination
:
BindingProperty BindingPropertyList , BindingPropertyBindingElementList
Error creating thumbnail: Unable to save thumbnail to destination
:
Elisionopt BindingElement BindingElementList , Elisionopt BindingElementBindingProperty
Error creating thumbnail: Unable to save thumbnail to destination
:
SingleNameBinding PropertyName : BindingElement
BindingElement : SingleNameBindingBindingPattern Initialiseropt
Error creating thumbnail: Unable to save thumbnail to destination
SingleNameBinding :BindingIdentifier Initialiseropt
Error creating thumbnail: Unable to save thumbnail to destination
BindingRestElementError creating thumbnail: Unable to save thumbnail to destination
:
... BindingIdentifier
EmptyStatement : ;
ExpressionStatement :[lookahead ∉ {{, function, class}] Expression ;
Error creating thumbnail: Unable to save thumbnail to destination
IfStatement : if ( Expression ) Statement else Statement if ( Expression ) Statement
IterationStatement :do Statement while ( Expression )
Error creating thumbnail: Unable to save thumbnail to destination
while ( Expression ) Statementfor ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement
Error creating thumbnail: Unable to save thumbnail to destination
for ( var VariableDeclarationListNoIn ; Expressionopt ; Expressionopt ) Statement for ( LexicalDeclarationNoIn ; Expressionopt ; Expressionopt ) Statementfor ( LeftHandSideExpression in Expression ) Statement
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
for ( var ForBinding in Expression ) StatementError creating thumbnail: Unable to save thumbnail to destination
for ( ForDeclaration in Expression ) StatementError creating thumbnail: Unable to save thumbnail to destination
for ( LeftHandSideExpression of Expression ) StatementError creating thumbnail: Unable to save thumbnail to destination
for ( var ForBinding of Expression ) StatementError creating thumbnail: Unable to save thumbnail to destination
for ( ForDeclaration of Expression ) StatementError creating thumbnail: Unable to save thumbnail to destination
ForDeclarationError creating thumbnail: Unable to save thumbnail to destination
:
LetOrConst ForBindingContinueStatement
Error creating thumbnail: Unable to save thumbnail to destination
:
continue ; continue [no LineTerminator here] Identifier ;
BreakStatement : break ; break [no LineTerminator here] Identifier ;
ReturnStatement : return ; return [no LineTerminator here] Expression ;
WithStatement : with ( Expression ) Statement
SwitchStatement : switch ( Expression ) CaseBlock
CaseBlock : { CaseClausesopt } { CaseClausesopt DefaultClause CaseClausesopt }
CaseClauses : CaseClause CaseClauses CaseClause
CaseClause : case Expression : StatementListopt
DefaultClause : default : StatementListopt
LabelledStatement : Identifier : Statement
ThrowStatement : throw [no LineTerminator here] Expression ;
TryStatement : try Block Catch try Block Finally try Block Catch Finally
Catch : catch ( CatchParameter ) Block
Finally : finally BlockCatchParameter
Error creating thumbnail: Unable to save thumbnail to destination
:
BindingIdentifierBindingPattern
Error creating thumbnail: Unable to save thumbnail to destination
DebuggerStatement : debugger ;
A.5 函数和程序
FunctionDeclaration : function BindingIdentifier ( FormalParameterList ) { FunctionBody }
FunctionExpression : function BindingIdentifieropt ( FormalParameterList ) { FunctionBody }
FormalParameterList : [empty]FunctionRestParameter
Error creating thumbnail: Unable to save thumbnail to destination
FormalsListFormalsList , FunctionRestParameter
Error creating thumbnail: Unable to save thumbnail to destination
FormalsList : FormalParameter FormalsList , FormalParameterFunctionRestParameter
Error creating thumbnail: Unable to save thumbnail to destination
:
... BindingIdentifier
FormalParameter : BindingElement
FunctionBody : StatementListoptArrowFunction
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
:
ArrowParameters => ConciseBodyError creating thumbnail: Unable to save thumbnail to destination
ArrowParametersError creating thumbnail: Unable to save thumbnail to destination
:
BindingIdentifier CoverParenthesizedExpressionAndArrowParameterListConciseBody
Error creating thumbnail: Unable to save thumbnail to destination
:
[lookahead ∉ {{}] AssignmentExpression { FunctionBody }
ArrowFormalParameterList产生式 ArrowParameters : CoverParenthesized... 中在 CoverParenthesizedExpressionAndArrowParameterList 上用的补充语法 : ( FormalParameterList )
MethodDefinition :PropertyName ( FormalParameterList ) { FunctionBody }
Error creating thumbnail: Unable to save thumbnail to destination
* PropertyName ( FormalParameterList ) { FunctionBody }Error creating thumbnail: Unable to save thumbnail to destination
get PropertyName ( ) { FunctionBody } set PropertyName ( PropertySetParameterList ) { FunctionBody }GeneratorDeclaration
Error creating thumbnail: Unable to save thumbnail to destination
:
function * BindingIdentifier ( FormalParameterList ) { FunctionBody }GeneratorExpression
Error creating thumbnail: Unable to save thumbnail to destination
:
function * BindingIdentifieropt ( FormalParameterList ) { FunctionBody }YieldExpression
Error creating thumbnail: Unable to save thumbnail to destination
:
yield YieldDelegatoropt [Lexical goal InputElementRegExp ] AssignmentExpressionError creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
YieldDelegatorError creating thumbnail: Unable to save thumbnail to destination
:
*ClassDeclaration
Error creating thumbnail: Unable to save thumbnail to destination
:
class BindingIdentifier ClassTailClassExpression
Error creating thumbnail: Unable to save thumbnail to destination
:
class BindingIdentifieropt ClassTailClassTail
Error creating thumbnail: Unable to save thumbnail to destination
:
ClassHeritageopt { ClassBodyopt }ClassHeritage
Error creating thumbnail: Unable to save thumbnail to destination
:
extends AssignmentExpressionClassBody
Error creating thumbnail: Unable to save thumbnail to destination
:
ClassElementListClassElementList
Error creating thumbnail: Unable to save thumbnail to destination
:
ClassElement ClassElementList ClassElementClassElement
Error creating thumbnail: Unable to save thumbnail to destination
:
MethodDefinition ;
Script : ScriptBodyopt
ScriptBody :Outer
Error creating thumbnail: Unable to save thumbnail to destination
Error creating thumbnail: Unable to save thumbnail to destination
StatementListOuterStatementList
Error creating thumbnail: Unable to save thumbnail to destination
:
OuterItem OuterStatementList OuterItemOuterItem
Error creating thumbnail: Unable to save thumbnail to destination
:
ModuleDeclarationError creating thumbnail: Unable to save thumbnail to destination
ImportDeclarationError creating thumbnail: Unable to save thumbnail to destination
StatementListItem
A.6 统一资源定位符字符分类
uri ::: uriCharactersopt
uriCharacters ::: uriCharacter uriCharactersopt
uriCharacter ::: uriReserved uriUnescaped uriEscaped
uriReserved ::: 以下之一 ; / ? : @ & = + $ ,
uriUnescaped ::: uriAlpha DecimalDigit uriMark
uriEscaped ::: % HexDigit HexDigit
uriAlpha ::: 以下之一 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
uriMark ::: 以下之一 - _ . ! ~ * ' ( )
A.7 正则表达式
Pattern :: Disjunction
Disjunction :: Alternative Alternative | Disjunction
Alternative :: [empty] Alternative Term
Term :: Assertion Atom Atom Quantifier
Assertion :: ^ $ \ b \ B ( ? = Disjunction ) ( ? ! Disjunction )
Quantifier :: QuantifierPrefix QuantifierPrefix ?
QuantifierPrefix :: * + ? { DecimalDigits } { DecimalDigits , } { DecimalDigits , DecimalDigits }
Atom :: PatternCharacter . \ AtomEscape CharacterClass ( Disjunction ) ( ? : Disjunction )
PatternCharacter :: SourceCharacter 但非以下之一 ^ $ \ . * + ? ( ) [ ] { } |
AtomEscape :: DecimalEscape CharacterEscape CharacterClassEscape
CharacterEscape :: ControlEscape c ControlLetter HexEscapeSequence UnicodeEscapeSequence IdentityEscape
ControlEscape :: 以下之一 f n r t v
ControlLetter :: 以下之一 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
IdentityEscape :: SourceCharacter but not IdentifierPart <ZWJ> <ZWNJ>
DecimalEscape :: DecimalIntegerLiteral [lookahead ∉ DecimalDigit]
CharacterClassEscape :: 以下之一 d D s S w W
CharacterClass :: [ [lookahead ∉ {^}] ClassRanges ] [ ^ ClassRanges ]
ClassRanges :: [empty] NonemptyClassRanges
NonemptyClassRanges :: ClassAtom ClassAtom NonemptyClassRangesNoDash ClassAtom - ClassAtom ClassRanges
NonemptyClassRangesNoDash :: ClassAtom ClassAtomNoDash NonemptyClassRangesNoDash ClassAtomNoDash - ClassAtom ClassRanges
ClassAtom :: - ClassAtomNoDash
ClassAtomNoDash :: SourceCharacter 但非 \ 或 ] 或 - \ ClassEscape
ClassEscape :: DecimalEscape b CharacterEscape CharacterClassEscape
A.8 JSON
A.8.1 JSON 词法
JSONWhiteSpace :: <TAB> <CR> <LF> <SP>
JSONString :: " JSONStringCharactersopt "
JSONStringCharacters :: JSONStringCharacter JSONStringCharactersopt
JSONStringCharacter :: SourceCharacter 但非 双引号 " 或反斜杠 \ 或 U+0000 到 U+001F \ JSONEscapeSequence
JSONEscapeSequence :: JSONEscapeCharacter u HexDigit HexDigit HexDigit HexDigit
JSONEscapeCharacter :: 以下之一 " / \ b f n r t
JSONNumber :: -opt DecimalIntegerLiteral JSONFractionopt ExponentPartopt
JSONFraction :: . DecimalDigits
JSONNullLiteral :: NullLiteral
JSONBooleanLiteral :: BooleanLiteral
A.8.2 JSON 语法
JSONText : JSONValue
JSONValue : JSONNullLiteral JSONBooleanLiteral JSONObject JSONArray JSONString JSONNumber
JSONObject : { } { JSONMemberList }
JSONMember : JSONString : JSONValue
JSONMemberList : JSONMember JSONMemberList , JSONMember
JSONArray : [ ] [ JSONElementList ]
JSONElementList : JSONValue JSONElementList , JSONValue