Ich hatte vor kurzem die Möglichkeit, in JavaScript zu loopen und ich war ziemlich verwirrt, ob ich für for-Schleife oder while-Anweisung verwenden sollte.
%Vor%oder
%Vor%Ich möchte von javascript Jungs wissen, welche man effektiver einsetzt und unter welchen Umständen wir sie entsprechend verwenden sollten. Ist es der gleiche Grund wie in Java oder etwas anderes.
Theoretisch ist die while
-Schleife schneller, weil die for
-Schleife das length
-Attribut von foo
jedes Mal während der Schleife nachschlägt, aber in der realen Welt wird es einen unermesslich kleinen Unterschied machen.
In einigen Browsern sind einige Arten des Loopings schneller - zum Beispiel ist in Chrome die for
-Schleife mehr als doppelt so schnell, aber es gibt keinen konsistenten Gewinner in allen Browsern. Wenn Sie einen Trick finden, um es in einem Browser wirklich schnell zu machen, werden Sie dafür in einem anderen Browser bestraft.
Tatsächlicher Leistungstest in verschiedenen Browsern: Ссылка
Sie sollten die Art der Schleife verwenden, die für die Situation sinnvoll ist. In vielen Fällen dauert das, was Sie innerhalb der Schleife tun, viel länger als die Schleife selbst.
For-Schleifen sind syntaktischer Zucker für while-Schleifen. Sie sollten genau gleich sein.
Ihre beiden Schleifen sind jedoch semantisch unterschiedlich. Einer zählt zu Null, während der andere zu einer Eigenschaft eines Objekts zählt, die langsamer, wenn auch nur geringfügig, sein muss. Es wäre sinnvoller, die obige while-Schleife mit der folgenden for-Schleife zu vergleichen:
%Vor%Tatsächlich hat es keinen signifikanten Unterschied, welche Schleife Sie verwenden. Jedes Buch, das ich gelesen habe, sagt es. Es kann einen Unterschied in Ihrem Beispiel geben, da Sie in Ihrer While-Schleife dekrementale Schleifen verwenden. es neigt dazu, schneller zu sein, weil die einzige Bedingung ausgewertet wird.
z. B. while(i<100)
ist langsamer als while(i--)
Für Ihre for-Schleife können Sie die Länge vor der Schleife speichern und an diesem Wert arbeiten, anstatt sie jedes Mal abzurufen. es wird Ihnen auch eine Leistungsoptimierung geben.
%Vor%Hier ist ein guter Test der verschiedenen Loops in Bezug auf die Leistung: Ссылка
Tags und Links javascript performance