ループは逆方向に移動すると本当に速くなりますか? 質問する

ループは逆方向に移動すると本当に速くなりますか? 質問する

何度も聞いたことがあります。JavaScript のループは、逆方向にカウントすると本当に速くなるのでしょうか? もしそうなら、その理由は? 逆方向のループの方が速いことを示すテスト スイートの例をいくつか見たことがありますが、その理由についての説明が見つかりません。

これは、ループが終了したかどうかを確認するたびにプロパティを評価する必要がなくなり、最終的な数値に対してのみチェックするようになったためだと推測します。

つまり

for (var i = count - 1; i >= 0; i--)
{
  // count is only evaluated once and then the comparison is always on 0.
}

ベストアンサー1

i--がより速いわけではありませんi++。実際、どちらも同じくらい速いです。

昇順ループで時間がかかるのは、各 についてi配列のサイズを評価することです。このループでは、

for(var i = array.length; i--;)

.lengthを宣言するときに一度だけ評価しますiが、このループでは

for(var i = 1; i <= array.length; i++)

をチェックするときに、.lengthを増分するたびに評価します。ii <= array.length

ほとんどの場合、この種の最適化について心配する必要はありません

おすすめ記事