Да, есть разница между ++i
и i++
в цикле for
, хотя в необычных случаях использования; когда переменная цикла с оператором увеличения / уменьшения используется в блоке for или в выражении теста цикла или с одной из переменных цикла . Нет, это не просто синтаксис.
Поскольку i
в коде означает оценку выражения i
, а оператор означает не оценку, а просто операцию;
++i
означает значение приращения i
на 1 и последующие оценки i
,
i++
означает оценку i
и последующее значение приращения i
на 1.
Итак, то, что получается из каждых двух выражений, отличается, потому что то, что оценивается, отличается в каждом. Все то же самое для --i
и i--
Например;
let i = 0
i++ // evaluates to value of i, means evaluates to 0, later increments i by 1, i is now 1
0
i
1
++i // increments i by 1, i is now 2, later evaluates to value of i, means evaluates to 2
2
i
2
В необычных случаях использования, однако следующий пример звучит полезно или не важно, он показывает разницу
for(i=0, j=i; i<10; j=++i){
console.log(j, i)
}
for(i=0, j=i; i<10; j=i++){
console.log(j, i)
}