Por que o método push é significativamente mais lento do que colocar valores por meio de índices de matriz em Javascript
Eu não entendo por que esse teste:
http://jsperf.com/push-method-vs-setting-via-key
Mostra que
a.push(Math.random());
é dez vezes mais lento que
a[i] = Math.random();
Você poderia explicar por que esse é o caso? Que mágica "push" faz com que seja tão lento? (ou mais lento se comparado a outro método válido de fazer isso).
EDITAR
NOTA: O teste de pressão é tendencioso. Eu aumento o tamanho da matriz a cada iteração! Leia a resposta cuidadosamente aceita!