It must be for the compatibility, Array.prototype.push() has been added to IE 5.5:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
Thirteen years ago... I would argue that you could use a.push() safely now.
So, why should a[a.length] be safer?
He said it already, JUST for the compatibility. No other reason compared to push nowadays.
One question though, it says:
a.push() variant seems more elegant to me. Why is a[] variant "safer"?