Der Einfluss des Schreibens einer For-Schleife auf die Effizienz
Im Allgemeinen gibt es zwei Möglichkeiten, eine For-Schleife zu schreiben:
Kein Schreiben von How So deklarieren Sie Variablen: for(var i = 0;i<arr.length;i++){}
So deklarieren Sie Variablen: for(var i = 0,len = arr.length;i < len;i++){}
Zusätzlich zu for-Schleifen gibt es Außerdem forEach()
gibt es auch Artikel, die besagen, dass forEach()
am effizientesten ist, und es wird empfohlen, die forEach()
-Schreibmethode zu verwenden. Welche ist also effizienter? Lass uns einen Test machen und sehen.
Testplan
Der Gesamttestplan sieht wie folgt aus:
Erstellen Sie eine Testarray-Variable, die 40 Millionen enthält.
Verwenden Sie zwei Schreibmethoden: for-Schleife und foreach, um diese Testvariable zu durchlaufen.
Führen Sie auf derselben stabilen Maschine 10 Tests durch und ermitteln Sie schließlich den Durchschnitt.
Testumgebung: CPU: Inter(R) Core i5-3210M, RAM: 12GM, System: win10 (x64)
Testprozess
Erstellen einer Testvariablen
Verwenden Sie zunächst eine While-Schleife, um eine Testvariable zu erstellen. Die Details sind wie folgt:
var testArrs = [], i = 0; while(i<40000000){ testArrs.push(i); i++; }
Schreiben Sie die entsprechende Testfunktion
, um den von mir verwendeten Timecode zu messen und auszuführen > und console.time()
zum Testen. console.timeEnd()
function testForeach(testArrs){ console.time('foreach'); var newArrs = []; testArrs.forEach(function(i){ newArrs.push(i); }); console.timeEnd('foreach'); }
function testNoDeclare(testArrs){ console.time('no declare'); var newArrs = []; for(var i = 0;i<testArrs.length;i++){ newArrs.push(i); } console.timeEnd('no declare'); }
function testUseDeclare(testArrs){ console.time('use declare'); var newArrs = []; for(var i = 0,len = testArrs.length;i<len;i++){ newArrs.push(i); } console.timeEnd('use declare'); }
Führen Sie die Testfunktion aus
Das Ausführen der Testfunktion ist sehr einfach, rufen Sie einfach die Funktion auftestForeach(testArrs); testNoDeclare(testArrs); testUseDeclare(testArrs);
Testergebnisse
Nach 10 Tests wurden die folgenden Ergebnisse erhaltenforeach | 不写声明 | 写声明 |
---|---|---|
2372.891ms | 672.530ms | 743.974ms |
2431.821ms | 710.275ms | 805.676ms |
2422.448ms | 729.287ms | 741.014ms |
2330.894ms | 730.200ms | 755.390ms |
2423.186ms | 703.255ms | 769.674ms |
2379.167ms | 689.811ms | 741.040ms |
2372.944ms | 712.103ms | 710.524ms |
2316.005ms | 726.518ms | 726.522ms |
2535.289ms | 733.826ms | 747.427ms |
2560.925ms | 793.680ms | 817.098ms |
平均值 | 平均值 | 平均值 |
2414.56ms | 720.15ms | 755.83ms |
dieses len = arr.length
möglicherweise zwischengespeichert wurde, macht es für uns keinen Sinn, eine len-Variable zum Speichern zu deklarieren. arr.length
Besondere Schreibweise für die for-Schleife
Die grundlegende Syntax der for-Schleife lautet:for (语句 1; 语句 2; 语句 3) { 被执行的代码块 }
for(var i=0;i<10;i++){ console.log(i); }
for(var i=10;i--;){ console.log(i); }
for (var i = 0, rule; rule = rules[i++];) { //do something }
for(var i = 0;i < rules.length;i++){ var rule = rules[i] }
Das obige ist der detaillierte Inhalt vonWelchen Einfluss hat das Schreiben von For-Schleifen in JavaScript auf die Ausführungseffizienz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!