Пожалуйста, примите во внимание этот фрагмент кода:
var i = 1;
i = i-- + ++i;
Мое понимание порядка, в котором обрабатываются операторы и операнды, выглядит следующим образом:
- i увеличивается на 1 (увеличение до исправления)
- i добавляется к i (добавление)
- i уменьшается на 1 (уменьшение после исправления)
- Значение с правой стороны присваивается i (операция присваивания)
Если мое понимание правильное, то в итоге я получу значение 3. Однако я распечатал результат, используя некоторый онлайн-интерпретатор javascript, и конечное значение i равно 2.
Где я ошибся?