Was ist effizienter in Javascript: while oder for statements?

7

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.

    
user882196 14.08.2011, 10:59
quelle

6 Antworten

9

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.

    
RichieHindle 14.08.2011, 11:09
quelle
7

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.

    
Guffa 14.08.2011 11:16
quelle
4

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%     
Marcelo Cantos 14.08.2011 11:10
quelle
4

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%     
Headshota 14.08.2011 11:11
quelle
4

Hier ist ein guter Test der verschiedenen Loops in Bezug auf die Leistung: Ссылка

    
EscapeNetscape 24.10.2016 07:40
quelle
0

Es gibt keinen großen Unterschied in ihrer "Effizienz" oder Leistung, verwenden Sie, was auch immer die Logik Ihres Programms von Fall zu Fall verständlicher macht.

    
nobody 14.08.2011 11:16
quelle

Tags und Links