0
Объясните почему 0
Проходил задание там вот такой код: var a=2; var b=3; alert(++a%b--) Ответ будет 0, почему не 1. Каким образом Алерт выводит 0? Если он доходит до b то дальше он не считает?
3 ответов
+ 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.
0
Потому что в первом операнде preincrement, то есть сразу возвращает значение. А во втором операнде postincrement, который возвращает значение и после прибавляет.
- 1
Сколько тебе лет? Не пора ли учить английский?