0

Объясните почему 0

Проходил задание там вот такой код: var a=2; var b=3; alert(++a%b--) Ответ будет 0, почему не 1. Каким образом Алерт выводит 0? Если он доходит до b то дальше он не считает?

9th Nov 2019, 8:22 AM
Denis Kovalev
Denis Kovalev - avatar
3 Answers
+ 3
alert(++2%3--) - это 4 действия. Вот их порядок с учётом приоритета операций: 1) ++2 = 3; 2) ++2%3 = 3%3 = 0; 3) alert(++2%3) = alert(3%3) = 0; 4) 3-- = 2. Префиксные инкремент и декремент (++a и --a) имеют максимальный приоритет, а постфиксные инкремент и декремент (a++ и a--) — минимальный. А вот если бы выражение выглядело так: alert(++2%--3), то оно бы решалось так: alert(++2%--3) = alert(3%2) = 1. Ещё возможно такое: alert(2++%3--) = alert(2%3) = 2. И такое: alert(2++%--3) = alert(2%2) = 0.
15th Nov 2019, 9:14 PM
Pavel