ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript for ループでパフォーマンスを向上させる_JavaScript のヒント

JavaScript for ループでパフォーマンスを向上させる_JavaScript のヒント

WBOY
WBOYオリジナル
2016-05-16 18:33:571091ブラウズ

一般に、JavaScript で配列を走査するときは、次のような for ループが使用されます。

コードをコピーします コードは次のとおりです

var arr = [];
for(var i=0; i//loop
}

this このコードの最大の問題は、ループされるたびに .operator を通じて .length を取得する必要があり、オーバーヘッドが増加することです。そうすれば、このように改善できます。
コードをコピーします コードは次のとおりです。

var arr = []
; for(var i=0, n=arr.length; i//loop
}

このようにして、まず arr.length を一時的に格納しますn 変数は移動します。最初に一度だけ入手してください。
でも、これでいいのでしょうか?余分な意味のない変数 n が定義されているようです。さて、改善を続けます
コードをコピーします コードは次のとおりです:

var arr = [];
for(var i=arr.length-1; i > -1; i--){
//loop
}

わかりましたこれをループしてみます。順序を逆にして、n を削除し、定数 -1 を使用します。
アプリケーション シナリオで for ループを使用できない場合。
の代わりに while を使用すると、これら 2 つのループ ステートメントを有効に活用して、JavaScript の効率を向上させることができます。
コードをコピーします コードは次のとおりです。

var arr = []
; var i= arr.length-1;
while(i--){
//loop arr[i]
}

または
コードをコピーします コードは次のとおりです。

var arr = []
var i=arr.length-; 1;
do {
// ループ arr[i]
}while(--i)

この方法では、特にループの場合、コードがより単純かつ効率的になります。 body は 1 回のみ実行できます。 次に、do while を使用した場合の効果は明ら​​かです。
唯一の問題は、i をループの外に移動することです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。