Warum ist die Push-Methode wesentlich langsamer als das Setzen von Werten über Array-Indizes in Javascript?

Ich verstehe nicht warum dieser Test:

http://jsperf.com/push-method-vs-setting-via-key

Zeigt, dass

 a.push(Math.random());

ist mehr als zehnmal langsamer als

 a[i] = Math.random();

Können Sie erklären, warum dies der Fall ist? Welcher magische "Push" macht es so langsam? (oder so langsam im Vergleich zu anderen gültigen Methoden).

BEARBEITEN

HINWEIS: Der Push-Test ist vorgespannt. Ich vergrößere das Array mit jeder Iteration! Lesen Sie sorgfältig akzeptierte Antwort!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage