Задать вопрос

Почему постфиксный и префиксный инкременты выдают одно и то же значение?

Есть такие две строки кода. В первой используется префиксный инкремент, во второй - постфиксный.
for (let i = 0; i < 3; ++i) alert( i );

for (let i = 0; i < 3; i++) alert( i );


Результат вывода двух циклов одинаковый – 0, 1, 2. Почему?

В постфиксном варианте по идее должно быть так:
1. Начало сверяется с условием (0)--> true --> вывело значение.
2. Выполняется шаг (+1), но само значение пока не меняется (все еще 0) --> сверяется с условием (0 < 3) --> выводится уже 1.
3. Выполняется шаг (+1), но само значение опять же пока не меняется (все еще 1) --> сверяется с условием (1 < 3), выводится уже 2.
4. Выполняется шаг (+1), но само значение опять же пока не меняется (все еще 2) --> сверяется с условием (2 < 3), выводится уже 3.
5. Выполняется шаг (+1), но само значение опять же пока не меняется (все еще 3) --> сверяется с условием (3 < 3), ничего не выводится т.к. false.

Как это может по-другому работать?
  • Вопрос задан
  • 6092 просмотра
Подписаться 1 Простой 3 комментария
Ответ пользователя alvvi К ответам на вопрос (3)
alvvi
@alvvi
export default apathy;
Не понятно, почему вы ожидаете именно разное поведение. Один оператор отличается от другого только возвращаемым значением. Возвращаемое значение в последнем выражении цикла for не влияет на выполнение цикла. Никакой дополнительной магии в данном цикле в JS нет.
Ответ написан