// ( A ) ( B ) (C)
for (var i=0; i < Things.length; i++) {
Things[i]
};
- A wird einmal ausgeführt, bevor die Schleife beginnt.
- B wird neu bewertet vor jeder Iteration, und wenn es nicht wahr ist, verlässt es die Schleife (daher überprüft er die Länge Eigenschaft
Things
auf jeder einzelnen Iteration.)
- C ausgeführt jedes Mal nach Iteration
das heißt, die Leistung, die Sie von Änderung der Schleife erhalten, ist minimal, und Sie riskieren Teil der Lesbarkeit zu opfern, so mit dem, was Sie finden die meisten lesbar - nicht das, was die meisten richtig performanc e-weise.
Dies könnte mehr Sinn für Sie machen:
for (var i=0; i < Things.length; i++) {
Things[i] = null;
};
könnte als die neu geschrieben werden folgende:
var i = 0; //A
while (true) {
if (!(i < Things.length)) { //B - We check the length all the time
break;
}
Things[i] = null;
i++; //C
}
und
for (var i = Things.length - 1; i >= 0; i--){
Things[i] = null;
};
könnte wie folgt neu geschrieben werden :
var i = Things.length - 1; //A - We only check the length once
while (true) {
if (!(i >= 0)) { //B
break;
}
Things[i] = null;
i--; //C
}
Weil es erfordert nicht die Länge Eigenschaft jedes Mal zugreifen. Im letzten Teil wird die Initialisierung nur einmal durchgeführt. Übrigens würden die meisten Leute die erste für die Lesbarkeit bevorzugen. –
exaktes Duplikat von [JavaScript - Sind Schleifen wirklich schneller umgekehrt?] (Http://stackoverflow.com/questions/1340589/javascript-are-loops-really-faster-in-reverse) Bitte suchen Sie zuerst selbst - und diese Frage war # 1 in der "Related" -Seitenleiste – Bergi
@ cPu1 Oder einfach weil sie ihr Array nicht rückwärts durchlaufen wollen ... – totymedli