for(var i, length = navCtrls.length; i < length; i++) …
Wie viel Performance hängt davon ab was navCtrls ist und wie weit unterhalb in der Prototype-Chain sich .length befindet.
und, ob die Javascript-Engine das nicht gleich selber optimiert (was nur ginge, wenn die Schleife als atomar betrachtet würde und keinen Einfluß auf die Länge von navCtrls hätte).
Im Prinzip könnte der Compiler durch statische Code-Analyse klären, ob sich length ändern kann, aber ich denke nicht, dass er es tut, daher wird er es nicht automatisch optimieren. Wenn man navCtrls.length schreibt, dann wird das auch immer als solches ausgeführt: Ein Identifier wird aufgelöst und eine Referenz wird erzeugt, daran mit dem Property Accessor eine Eigenschaft geholt, welche ja auch ein Getter sein könnte. In ECMAScript 5 kann man diesen Vorgang nicht wegoptimieren.
Mathias