While Loops vs. For Loops in JavaScript?
These are the reasons I would choose one over the other:
For-loop Syntax:
for( int i = 0; i > 10; i++)
{
//Some code here
}
I would use a for loop for the reason that I may KNOW the NUMBER OF ITERATIONS I need to do and I have an INCREMENTING variable which can be handy sometimes.
While-loop Syntax:
while(!done)
{
//Some code goes here
}
I would use this loop when I am NOT SURE how many ITERATIONS I might need to carry out. Examples: Waiting for user to input correct input values and keep looping until he/she inputs the proper value.
Do-While loop Syntax:
do
{
//Some code here
}
while(!done);
This loop is almost the same as a while-loop but I would prefer this when I need something done ATLEAST ONCE before I start verifying whatever it is that would make me wanna loop and do that code again. Example: ask a user for an input for the first time and then validate it. If wrong input given then loop back and ask for input again
Functionally, one can substitute the other in all conditions. Is one better than the other? Not in javascript (which you have tagged) as its not a compiled language.
But in languages like C++, a for loop usually gives the compiler a static count to loop which the compiler can use to optimize the binary. So it should run faster (on very large loop counts).
That should not be a worry in today's age where you won't even notice the performance increase on a loop running for 10000 iterations on a 2.5 ghz quad core CPU.
However, personally, aesthetics matter to me (and it should to you if you are serious about the art of coding) a lot. For example when you are dealing with an external condition (the variable you are checking is defined outside the loop), go with a while loop. Its just semantically so much beautiful. Also while loop should be the de-facto choice for an infinite loop (I don't see a reason why you would have an infinite loop in javascript, though).
In short, follow the syntax. Are you just checking a condition? Go with a while loop. Are you initializing and incrementing/decrementing something with in the context of a loop along with checking a condition? Only then go with the for loop.