11

私は読んだCのi++と++iの間にパフォーマンスの違いはありますか?

結果の値が使用されない場合、i++と++iの間にパフォーマンスの違いはありますか?

JavaScriptの答えは何ですか?

たとえば、次のうちどれが優れていますか?

1)

for(var i=0;i<max;i++){
    //code
}

2)

for(var i=0;i<max;++i){
    //code
}
4

2 に答える 2

14

このトピックに関する記事は次のとおりです:http://jsperf.com/i-vs-i/2

++i少し速いようです(私はFirefoxでテストしました)。記事によると、1つの理由は次のとおりです。

i ++では、内部でiをインクリメントする前に、iの新しいコピーを作成する必要があります。++ iを使用すると、その余分なコピーは必要ありません。i ++は、iをインクリメントする前に現在の値を返します。++ iは、インクリメントされたバージョンiを返します。

于 2012-09-20T00:51:05.437 に答える
-5

いいえ。実行時間に違いはありません。2つのコードスニペットの違いは、インクリメントされるときです。

for(i = 0; i < max; i++)
{
    console.log(i);
}

この最初の例では、次の結果が得られます:0,1,2,3、...、max-1

for(i = 0; i < max; ++i)
{
    console.log(i);
}

この2番目の例では、次の結果が得られます:1,2,3、...、max

i ++は、操作後に値をインクリメントします。++ iは、操作の前に値をインクリメントします。

インクリメントは最初の操作の前に行われるため、++iでの反復が1回少なくなる以外にパフォーマンスの違いはありません。

于 2012-09-20T00:53:02.750 に答える