3

これは、JavaScript の「for-in」ループの「var」または「var」がないことに関連していますか? (ただし、スコープについて詳しく説明します-この質問はスコープに関するものではありません)

オブジェクトまたは配列をループする方が効率的/一般的ですか?その理由は?

オプション 1 - ループ外で var を設定する

// Object
var x;
for (x in obj) { ... }
// Array
var i;
for (i = 0; i < array.length; ++i) { ... }

オプション 2 - ループ内で var を設定する

// Object
for (var x in obj) { ... }
// Array
for (var i = 0; i < array.length; ++i) { ... }
4

2 に答える 2

6

varが引き上げられ、ブロックではなく関数にスコープされるため、違いはコンパイラーによって最適化されます。

2つ目は、ネットワーク経由で送信する文字が少ないため、わずかに高速です。この違いは、どちらを使用するかを決定する際の影響要因となるほど重要ではありません。

于 2012-05-10T19:10:07.510 に答える
0

実際、最速の方法は、リストを逆方向にループすることです(結果に影響する場合は、これを行わないように注意してください)。ループは逆に本当に速いですか?を参照してください。

var i = arr.length; //or 10
while(i--)
{

}

varの質問については、その名前を使用していない限り、外部で宣言するか、値をリセットするか、後で参照を削除することができます。

于 2012-05-10T19:11:27.590 に答える