Как указано в спецификации (да, 5.1, это намеренно ):
AssignmentExpression :
ConditionalExpression
LeftHandSideExpression = AssignmentExpression
LeftHandSideExpression AssignmentOperator AssignmentExpression
Основываясь на этом определении, я не понимаю, как допустимо простое присваивание foo = 42
.
Насколько я понимаю, за foo =
всегда должно следовать либо ConditionalExpression
, либо, по сути, другое назначение, но в этом случае как закончится производство, если я не использую ConditionalExpression
? Все дальнейшие правила AssignmentExpression
требуют либо ConditionalExpression
, либо другого AssignmentExpression
.
Что мне здесь не хватает?
foo = 42
обрабатывается - person ibrahim mahrir   schedule 18.07.2020ConditionalExpression
. Буквенное число42
является допустимымConditionalExpression
(как и действительнымAssignmentExpression
), попробуйте найти его! - person Bergi   schedule 18.07.2020BitwiseXORExpression
, полагая, что я на неправильном пути. :D Если вы опубликуете ответ, я с радостью его приму! - person whoami   schedule 18.07.2020