может кто-нибудь объяснить мне, где в спецификации ECMAScript упоминается приоритет оператора и ассоциативность оператора

Я читал документы mdn об операторах приоритет и ассоциативность операторов приоритет операторов и ассоциативность операторов (MDN) и хотел узнать об этом больше, прочитав спецификация ECMAScript.

Но я не нашел там ничего о приоритете операторов и ассоциативности операторов.

Может ли кто-нибудь дать мне ссылку на спецификацию ECMAScript, где они описывают приоритет и ассоциативность каждого оператора.

Любая помощь очень ценится. И мне нужно знать, не упоминается ли в спецификации ECMAScript что-либо о

приоритет и ассоциативность каждого оператора, как разработчики языка узнают, какой оператор следует разрешить первым перед другим, я имею в виду, как они узнают, какой оператор должен оцениваться перед другим оператором


comment
связанные: stackoverflow.com/questions /9934553/   -  person Jonas Wilms    schedule 09.08.2020


Ответы (2)


Например, в разделе 12.8 спецификация

12.8 Синтаксис аддитивных операторов

  AdditiveExpression:
      MultiplicativeExpression
      AdditiveExpression + MultiplicativeExpression
      AdditiveExpression - MultiplicativeExpression

отредактировано для удобства чтения

Из-за этих производств 1 + 2 * 3 создается через AdditiveExpression с двумя MultiplicativeExpressions внутри:

    AdditiveExpression
    (AdditiveExpression + MultiplicativeExpression)
    ((MultiplicativeExpression) + (MultiplicativeExpression MultiplicativeOperator MultiplicativeExpression))
    //...
    ((1) + (2 * 3))

Если вы оцениваете это, сначала оцениваются MultiplicativeExpressions (см. раздел 12.8.3.1).

person Jonas Wilms    schedule 09.08.2020
comment
эй спасибо. как здесь прочитать о приоритете и ассоциативности операторов? - person Kevin; 10.08.2020
comment
я не понимаю вопроса - person Jonas Wilms; 10.08.2020
comment
я имею в виду, как я могу понять о приоритете и ассоциативности операторов ECMAScript, читая грамматики операторов - person Kevin; 10.08.2020

Обычно мы изучаем все эти вещи в курсе Compiler Design. В этом курсе мы исследуем, как создаются эти правила. Какие есть уровни и объединение операторов.

Эти правила относятся не только к JavaScript. В некоторых языках одни и те же правила, в некоторых другие. Если вы хотите узнать, как создаются эти правила, я бы порекомендовал вам изучить некоторые основы дизайна компилятора.

Для понимания концепций я всегда ссылаюсь на https://javascript.info/operators.

person Rehan Sattar    schedule 09.08.2020