Есть такие две строки кода. В первой используется префиксный инкремент, во второй - постфиксный.
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.
Как это может по-другому работать?