-2

私はただ興味があります..条件文の異なるバージョン間でパフォーマンスはどのように異なりますか?

すなわち:

if ( x == false) //doSomething

if ( x === false ) //doSomething

if ( !x ) //doSomething

!x && //doSomething

個人的には、他の 3 つよりもかなり短いので、3 つ目を使用することをお勧めします。しかし、「起こりうる」パフォーマンス上の欠点を認識していないかどうかについては、少し懐疑的です。たとえミリ秒の差であっても、私にとっては重要です。

ありがとう!

4

2 に答える 2

3

Ted はすでにこれを行っているため、ステートメント間の機能的な違いについては詳しく説明しませんが、http: //www.jsperf.com でいつでも JS のパフォーマンスを確認できます。

これがあなたのものです:http://jsperf.com/ifperf

于 2013-04-29T06:47:26.367 に答える
2

これら 4 つのバリエーションには、異なるセマンティクスや構文上の制約があります。

if ( x == false) //doSomething
if ( !x ) //doSomething

これら 2 つは同等であり、「偽」の値 ( 、、、、または空の文字列) のdoSomething場合に有効です。解析後、パフォーマンスにまったく違いがあるとは思えません。xfalse0undefinednullNaN

if ( x === false) //doSomething

これは、が正確にdoSomethingの場合にのみ行われます。他の「偽の」値 (または「真の」値) である場合は、実行されません。型変換が行われないため、パフォーマンスがわずかに向上する場合があります。xfalsexdoSomething

!x && //doSomething

これは最初の 2 つとほぼ同等ですdoSomethingが、式に限定されます。パフォーマンスは最初の 2 つのようになると思います。

于 2013-04-29T06:39:10.443 に答える