With a for
-loop, we have an efficient and standard looping construct. Within Node.js, the V8 engine optimizes for
-loops—this makes them an effective and fast construct.
And with a while
-loop, we can do the same thing as a for
-loop, but the syntax may be simpler when an endpoint is not known. Thus while-true
is a good infinite loop.
The program begins at 0 and stops at 4. When the loop var
"i" reaches 5, the for
-loop is terminated before being run again.
// Loop over first 5 numbers and print them. for (var i = 0; i < 5; i++) { console.log("FOR-LOOP ITERATION: " + i); }FOR-LOOP ITERATION: 0 FOR-LOOP ITERATION: 1 FOR-LOOP ITERATION: 2 FOR-LOOP ITERATION: 3 FOR-LOOP ITERATION: 4
Here we rewrite the first for
-loop into a while
-loop. This version of the looping logic is somewhat harder to follow for both people and compilers.
for
-loop when the end point is known. But for an infinite loop, the while
-loop is preferred.// Use while-loop over first five numbers. var i = 0; while (i < 5) { console.log("WHILE INDEX: " + i); i++; }WHILE INDEX: 0 WHILE INDEX: 1 WHILE INDEX: 2 WHILE INDEX: 3 WHILE INDEX: 4
For
-of loopThis loop enumerates the elements in an array. It does not return indexes like for-in
. It returns the actual elements in the array.
var numbers = [10, 20, 30]; // Loop over the numbers in the array. for (var number of numbers) { console.log("FOR OF: " + number); }FOR OF: 10 FOR OF: 20 FOR OF: 30
For
-in loopThis loop returns all the indexes of an array. So in an array of 3 elements, we get the indexes 0, 1 and 2. We can then access the elements themselves.
var numbers = [10, 20, 30]; // Loop over the indexes. // ... The "i" identifier is a standard index variable name. for (var i in numbers) { console.log("INDEX: " + i); console.log("ELEMENT: " + numbers[i]); }INDEX: 0 ELEMENT: 10 INDEX: 1 ELEMENT: 20 INDEX: 2 ELEMENT: 30
Hoisting variables and caching the length in a for
-loop may lead to micro-benchmark improvements. But these can disappear on more complex, real programs.
Most programs are built around looping. With loop we construct web pages, animate graphics and even decide an optimal chess move.