「〜〜」誰かがそれが何のために使用されているのか説明できますか?Javascriptで '〜〜'とは何ですか?
Google検索は完了しましたが、何も返されていません。
これは数学演算子ですが、数値に対して実際に何をしているのかわかりません。
「〜〜」誰かがそれが何のために使用されているのか説明できますか?Javascriptで '〜〜'とは何ですか?
Google検索は完了しましたが、何も返されていません。
これは数学演算子ですが、数値に対して実際に何をしているのかわかりません。
〜ビット単位の演算子です。
var a = 1.9;
Math.floor(a) === ~~a // true (1 === 1)
しかし1)読むthis answerは、それが達成されるかを理解するとthis performance testは、いくつかのものを見て:二回、それを使用することにより、一部の人々は、その代わりに、同じようMath.floor
を使用しての最適化と言いますケースはMath.floor()
が高速です。 Math.floor()
がその目的であるため、後で性能が上がることは意味をなさない!
ただし、2)this answerを読んで、負の数といくつかのエッジケースで異なる効果を確認してください。
var a = -1.5;
Math.floor(a) !== ~~a // true (-2 !== -1)
しかし+)しかし
Math.floor(Infinity) !== ~~Infinity // true (Infinity !== 0)
は++)いくつかのより多くの興味深い側面があるだろう、私は確信している、同様のコメントを確認してください。
個人的には、パフォーマンスが確かなものでない場合には、私は読みやすさを好みます。プラス他の効果...ちょうどMath.floor
を使用して最高のためだ!
ビット単位の演算子はmozzila ref、JavaScriptでの数字の表現方法はw3schoolsです。
JavaScriptビット単位の演算子としては、 'Math.floor()'と全く同じではありません。 32ビット値で作業します。 'Math.floor'は64ビットの浮動小数点値を扱うことができます。 – Pointy
また、 '~~" a "'は0を返しますが、 'Math.floor(" a ")'はNaNです。 – OnlyThenDidIReckonMyCurse
ビットの補数演算子のペアです。これは一人のオペレータではありません。
これは時には32ビットの整数に数値を強制するために使用されます:
var anInteger = ~ ~ aValue;
これが重複している場合は、私はq&aの何をすると思いますか? –
重複している箇所がわからない以前の質問は表示されません。リンク? –
http://stackoverflow.com/questions/4055633/what-does-do-in-javascript –