He visto muchas preguntas que sugieren usar:
for (var i = 0; i < myArray.length; i++){ /* ... */ }
en vez de:
for (var i in myArray){ /* ... */ }
para matrices, debido a iteraciones inconsistentes ( ver aquí ).
Sin embargo, parece que no puedo encontrar nada que parezca preferir el bucle orientado a objetos:
myArray.forEach(function(item, index){ /* ... */ });
Lo que me parece mucho más intuitivo.
Para mi proyecto actual, la compatibilidad con IE8 es importante y estoy considerando usar el polyfill de Mozilla , sin embargo, no estoy 100% seguro de cómo funcionará.
- ¿Existen diferencias entre el bucle for estándar (el primer ejemplo anterior) y la implementación Array.prototype.forEach de los navegadores modernos?
- ¿Existe alguna diferencia entre las implementaciones de navegadores modernos y la implementación de Mozilla vinculada anteriormente (con especial atención a IE8)?
- El rendimiento no es un problema, solo la coherencia con las propiedades que se repiten.

breaksalirforEach. Pero una gran ventaja es crear un nuevo alcance con la función. Con el polyfill no deberías tener ningún problema (al menos no he encontrado ninguno).