I am learning javascript and I have two questions hope you can help :)
I have two for loops iterating backwards
for (var i = 10; i--;) {
console.log(i, "backward");
}
// starts at 9 and stops at 0
// without breaking condition
for (var i = 10; i >= 0; i--) {
console.log(i, "backward");
}
// starts at 10 and stops at 0
// with breaking condition that i >= 0
i > 0 ? is it because 0 is false anyway ? so when it reaches 0 it automatically breaks ? and it won't keep iterating like 0, -1, -2, -3, ....etc ?thanks for your support :D Cheers
i-- is the breaking point. A post-decrement expression subtracts 1 from the variable and returns the previous value. So when i is 0, the value of i-- is 0, which is falsey, and the loop stops.i during the repeat condition, which runs before the body, so the first iteration already has it decremented to 9. In the second example we're decrementing i in the update expression, which runs after the body, so it still has the initial value 10 during the body of the first iteration.To understand what a for loop is doing, expand it into the analogous while loop.
for(initialize; condition; update) {
body
}
is roughly equivalent to
initialize;
while (condition) {
body;
update;
}