한다고 가정 I JS 코드의 다음 부분을 가지고`ECMA 스크립트 문법에 Statement` '에서 파생 AssignmentExpression` 수있는 방법
나는 그것이 AssignmentExpression로서 해석 할 수 있습니다 알고있는 것처럼const v = 3;
:
AssignmentExpression :
LeftHandSideExpression = AssignmentExpression
이제 Statement에서 어떻게 파생 될 수 있는지 궁금합니다. 한 가지 가능한 경로는 다음과 같습니다.
Statement -> ExpressionStatement -> Expression -> AssignmentExpression
하지만 확실하지 않습니다. 맞습니까?
AssignmentExpression
이 부분 Expression입니다 :
Expression :
AssignmentExpression
Expression, AssignmentExpression
다음 Expression
이 ExpressionStatement의 일부
ExpressionStatement:
[lookahead ∉ { {, function, ..., let [ }] Expression;
입니다 다음 ExpressionStatement
Statement의 일부입니다 : 여기
내가 그것을 발견하는 방법입니다
Statement :
ExpressionStatement
첫째,'const를 V = 3;'**하지 ** 할당 표현이다. 그것은'const' 선언입니다. 초기화 부분 *은 대입 표현식처럼 보이지만 문법의 개별 부분입니다. – Pointy
자바 스크립트 문법은 문법 구성의 시작 부분에 키워드와 토큰에 상당히 의존하며, 선언은 좋은 예입니다. 문장의 첫 번째 토큰이'const'이거나'let' 또는'var'이라면, 그것은 표현식이 아닌 선언입니다. – Pointy
@ Pointy, 지적 해 주셔서 고맙습니다. 당신이 말하는 Const 선언은'LexicalDeclaration : LetOrConst BindingList'의 일부로 보입니다. 문법을 따라 간다면'StatementListItem -> Declaration -> LexicalDeclaration'을 사용해야한다. 답변으로 게시 할 수 있습니까? –