11

重複の可能性:
JavaScript の「ダブル チルダ」(~~) 演算子とは?

node.js ライブラリのソースで、このコードのスニップを見つけました。変数にどのような影響が~~ありますか?input

inArray[3] = ~~input;

他の方法でも使用されます。

return ~~ ((a - b) / 864e5 / 7 + 1.5);
4

3 に答える 3

15

~演算子は、そのオペランドのビットを反転します。これを 2 回使用すると、ビットが反転してから再度反転し、オペランドと同等の標準 Javascript 値を整数形式で返します。の省略形ですparseInt(myInt)

于 2012-04-10T18:35:56.140 に答える
10

これは、値を切り捨てるハックな方法で、Math.floor負の数に対して異なる動作をすることを除いて、少し似ています。たとえば、 -15.9 ( ~~-15.9) を切り捨てる-15と になりますが、フローリングでは常に最小の数値に丸められるため、 にMath.floor(-15.9)なります16

それを行う別の方法は、 zero で OR することです。

var a = 15.9 | 0; //a = 15
于 2012-04-10T18:35:25.863 に答える
2

値を整数に変換します。

于 2012-04-10T18:34:18.247 に答える