A maioria dos desenvolvedores de JS sabe que é mais eficiente evitar a chamada de Array.length em cada iteração de um loop.
for( i = 0; i < myArray.length; i++ )
Existem várias maneiras de contornar isso. O mais comum é armazenar o comprimento em cache.
for( i = 0, len = myArray.length; i < len; i++ )
Acho um pouco mais elegante usar um iterador descendente, quando posso.
for( i = myArray.length - 1; i >= 0; i-- )
Isso pode ser ainda mais simplificado para
for( i = myArray.length; --i >= 0; )
ou melhor ainda
for( i = myArray.length; i--; )
Os desenvolvedores novatos devem ser capazes de descobrir o que está acontecendo, mas sempre tome cuidado ao desviar da sintaxe padrão.
Respostas relacionadas:
javascript foreach