A la hora de recorrer un conjunto de datos o un Array en JavaScript, lo normal es usar el bucle for de toda la vida
var valores = new Array('uno', 'dos', 'tres'); for (var i=0; i < valores.length; i++ ) { document.write(valores[i]); }
Este es el bucle al cual estamos acostumbrados, y siempre tenemos que usar length para calcular la dimensión del Array
En cambio si usamos el bucle for/in no hace falta tener que calcularlo
var valores = new Array('uno', 'dos', 'tres'); for (var i in valores) { document.write(valores[i]); }
Como se puede ver es bastante mas sencillo usar el bucle for/in que el for. Este bucle seria al equivalente en PHP del foreach
Otra ventaja mas que tiene es que nos permite recorrer un objeto de JavaScript, algo que con el bucle for usando length no nos permite hacer, por lo menos de una manera sencilla.
var person={fname:"John", lname:"Doe", age:25}; for ( x in person) { document.write(person[x]); }