2

どちらがより効率的ですか?

// < 11
for(var i = 0; i < 11; i++){ ... }

また

// <= 10
for(var i = 0; i <= 10; i++){ ... }

for関数がどのように機能するかは正確にはわかりませんが、各比較で、小さいだけでなく等しいかどうかもチェックされているため、2回の比較を行う必要が< 11あるため、より効率的だと思います。 1。<= 1010

私は正しいですか、それともこれはどのように機能しますか?

4

2 に答える 2

6

少しでも違いがあれば、それは非常に小さいでしょう。保守が容易なコードを使用する必要があります。カウンターが反復<されている間に0からループすると、通常は演算子が優先されます。< xx

ただし、違いは<=2つの比較を行うためではなく、そうでないためです。

2つの数値を比較するとき、コンピューターは実際にそれらを減算し、何が起こるかをチェックします。結果が正、負、またはゼロの場合、異なる演算子が真の結果を返します。

operator:   true when result is:
----------  ---------------------
<           negative
<=          not positive
==          zero
>           positive
>=          not negative
于 2013-03-07T13:25:57.047 に答える
6

パフォーマンスに関する質問がある場合は、常にjsPerf.comで入手してください。

このテストケースでは

  • FF18では、最初のループは無視できるほど高速です
  • FF19では、2番目のループは無視できるほど高速です。
  • Chrome 25では、これらはまったく同じです。

実際、これはせいぜいマイクロ事前最適化であり、おそらく他の場所に焦点を当てる必要があります。

于 2013-03-07T13:29:04.803 に答える