私は読んだCのi++と++iの間にパフォーマンスの違いはありますか?:
結果の値が使用されない場合、i++と++iの間にパフォーマンスの違いはありますか?
JavaScriptの答えは何ですか?
たとえば、次のうちどれが優れていますか?
1)
for(var i=0;i<max;i++){
//code
}
2)
for(var i=0;i<max;++i){
//code
}
私は読んだCのi++と++iの間にパフォーマンスの違いはありますか?:
結果の値が使用されない場合、i++と++iの間にパフォーマンスの違いはありますか?
JavaScriptの答えは何ですか?
たとえば、次のうちどれが優れていますか?
1)
for(var i=0;i<max;i++){
//code
}
2)
for(var i=0;i<max;++i){
//code
}
このトピックに関する記事は次のとおりです:http://jsperf.com/i-vs-i/2
++i
少し速いようです(私はFirefoxでテストしました)。記事によると、1つの理由は次のとおりです。
i ++では、内部でiをインクリメントする前に、iの新しいコピーを作成する必要があります。++ iを使用すると、その余分なコピーは必要ありません。i ++は、iをインクリメントする前に現在の値を返します。++ iは、インクリメントされたバージョンiを返します。
いいえ。実行時間に違いはありません。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回少なくなる以外にパフォーマンスの違いはありません。