Каждое сложное утверждение будет создавать проблемы с приоритетом.
Возьми это:
const a = 1 * 2 + 5 / 2 % 2
Результат – 2,5, но почему? Какие операции выполняются в первую очередь, а какие нужно подождать?
Некоторые операции имеют больший приоритет, чем другие. Правила приоритета перечислены в этой таблице:
| – + ++ — | унарные операторы, приращение и уменьшение |
| * / % | унарные операторы, приращение и уменьшение, умножение/деление |
| + – | унарные операторы, приращение и уменьшение, умножение/деление, сложение/вычитание |
| = += -= *= /= %= **= | унарные операторы, задания приращения и уменьшения, умножения/деления, сложения/вычитания |
унарные операторы, операции приращения и уменьшения, умножения/деления, сложения/вычитания на одном уровне (например, + унарные операторы, операции приращения и уменьшения, умножения/деления, сложения/вычитания на одном уровне (например, + и –
унарные операторы, операции приращения и уменьшения, умножения/деления, сложения/вычитания на одном уровне (например, ||+ и || -||) выполняются в порядке, следующем за этой таблицей, мы можем решить этот расчет: ound
const a = 1 * 2 + 5 / 2 % 2 const a = 2 + 5 / 2 % 2 const a = 2 + 2.5 % 2 const a = 2 + 0.5 const a = 2.5
Оригинал: “https://flaviocopes.com/javascript-operator-precedence/”