#javascript
for (var i = 0; i < 5; ++i) { alert(i); // 0,1,2,3,4 } for (var i = 0; i < 5; i++) { alert(i); // 0,1,2,3,4 } https://jsfiddle.net/z0ugbbwj/ Не увидел разницы.
Ответы
Ответ 1
В приведённом примере разницы нет. Подробнее про легенды, что ++i быстрее. Ходят слухи, что для выполнения ++i значение в памяти увеличивается и затем возвращается. В то время, как для i++ сначала запоминается значение в создаваемой временной переменной, потом увеличивается значение основной и возвращается значение временной – таким образом увеличиваются «расходы» на создание временной переменной. Перформанс тест не удаётся посмотреть из-за временного косяка на их стороне.Ответ 2
В данном случае разницы нет, так как это выражение выполняется в конце итерации и может быть переписано таким образом for (var i = 0; i < 5;) { console.log(i); // 0,1,2,3,4 ++i; } for (var i = 0; i < 5;) { console.log(i); // 0,1,2,3,4 i++; } Так как это выражение выполняется отдельно, и его возвращаемое значение не используется - нет никакой разницы как именно менять значение переменной, абсолютно аналогичные варианты: i += 1; i = i+1; i = inc(i); ... Разница появится при использовании инкремента во втором блоке: for (var i = 0; ++i < 5;) { console.log(i); // 0,1,2,3,4 } for (var i = 0; i++ < 5;) { console.log(i); // 0,1,2,3,4 }Ответ 3
Разница в том, что ++i инкрементирует, а затем возвращает значение. i++ возвращает значение, а потом инкрементирует.
Комментариев нет:
Отправить комментарий