2017-03-14 11 views
2

나는 간단한 함수 호출은JavaScript 함수가 LeftHandSideExpression을 호출합니까, 그렇다면 ExpressionStatement입니까?

window.alert(); 

으로 유효한 ECMA 스크립트 2016 (제 7 판) 문법 것을 증명하기 위해 노력하고있어. 역방향으로 작업하면 ExpressionStatement이고, MemberExpression 인수인데, 이는 CallExpression입니다. 그리고 섹션 12.3왼쪽 핸드 사이드 표현식으로 정의합니다. CallExpression. 이제 내 문제는 섹션 12.15AssignmentExpressionLeftHandSideExpressionAssignmentExpression 또는 및 AssignmentExpression할 수없는 AssignmentOperator 중 다음에 할 것을 요구하는 것이다;

나는 아마도 간단한 것을 놓치고 있습니다. 방향은 크게 감사하겠습니다.

답변

6

AssignmentExpression은 반드시 지정 일 필요는 없으며 "할당이 여기에 서있을 수 있음"을 의미합니다. 또한 조건부 표현만으로 구성 될 수도 있습니다. 그리고 이제 우리는 연관성 규칙의 전체 체인을 내려야합니다.
ConditionalExpression은 3 진 연산자를 포함하거나 LogicalORExpression으로만 구성 될 수 있습니다. LogicalORExpression|| 연산자를 포함하거나 LogicalANDExpression으로만 구성 될 수 있습니다. 등하십시오 LogicalANDExpression가 구성 될 수있는 단독 ShiftExpression 이루어질 수 단독 RelationalExpression만으로 구성 될 수 EqualityExpression 이루어질 수 BitwiseANDExpression 전적으로 구성 될 수 BitwiseXORExpression 단독으로 구성 할 수 BitwiseORExpression 단독으로 구성 될 수있다 단지 AdditiveExpression 일 수 있으며, 이는 만으로 구성 될 수있는 UnaryExpression만으로 구성 될 수있는 ExponentiationExpression만으로 구성 될 수있는 MultiplicativeExpression만으로 구성 될 수 있습니다.

마지막으로 우리가 찾고 있던 LeftHandSideExpression으로 구성 될 수 있습니다.

+0

감사합니다. Bergi. 그러나 * UpdateExpression *에 따라 증가 또는 감소 연산자가 필요하지 않습니다 * LeftHandSideExpression *? – Matthias

+0

@Matthias 아니요, 'LeftHandSideExpression'은 다섯 가지 옵션 중 첫 번째 옵션이므로 필요하지 않습니다. – Xufox

+0

** 12.4 ** 이제 보니! 고마워 친구들! – Matthias