No es necesario poner tres parámetros. De hecho, no es necesario poner ninguno, bastaría con poner los dos punto y comas. for (;;){} formando un bucle infinito. Las lógica para parar el bucle iría dentro del "cuerpo" del bucle.
Los puntos y comas dividen el for en tres zonas: La primera sirve para inicializar variables, todas las que quieras, separadas por comas. Se ejecutará una sola vez, justo al principio.
Código Javascript
:
Ver originalfor (var i=0, n=array.length, j=0;;){}
La segunda es una comparación booleana, y se ejecuta al principio de cada vuelta del bucle for. Es una expresión booleana (TRUE O FALSE) Mientras esté a true, el FOR seguirá ejecutándose.
Código Javascript
:
Ver originalfor for (var i=0, n=array.length;i<n && j!=5;){}
La tercera zona sirve para ejecutar instrucciones en cada vuelta del bucle, después de ejecutarse la comparación booleana anterior, y antes de ejecutar el contenido del for. Típicamente sirve para asignar valores a las variables de la primera parte para que el booleano de la segunda parte devuelva un false en algún momento, para que deje de ejecutarse el bucle del for. Para ejecutar varias instrucciones, sepáralas con comas. Pero por poder, puede ejecutar cualqueir cosa.
Código Javascript
:
Ver originalfor for (var i=0, n=array.length, j=10;i<n && j!=5; i++, j--){}
Tampoco es estrictamente necesario que el FOR tenga "cuerpo", es decir, código entre sus llaves "{" y "}". Por ejemplo, un for que eleva al cubo cualquier array de números, si tener "cuerpo":
Código Javascript
:
Ver originalvar arr=[1,2,3,4,5,6,7,8,9,10];
for (var i=0, n=arr.length; i<n; arr[i]=Math.pow(arr[i++],3));