重複の可能性:
JavaScript の「ダブル チルダ」(~~) 演算子とは?
node.js ライブラリのソースで、このコードのスニップを見つけました。変数にどのような影響が~~
ありますか?input
inArray[3] = ~~input;
他の方法でも使用されます。
return ~~ ((a - b) / 864e5 / 7 + 1.5);
重複の可能性:
JavaScript の「ダブル チルダ」(~~) 演算子とは?
node.js ライブラリのソースで、このコードのスニップを見つけました。変数にどのような影響が~~
ありますか?input
inArray[3] = ~~input;
他の方法でも使用されます。
return ~~ ((a - b) / 864e5 / 7 + 1.5);
~
演算子は、そのオペランドのビットを反転します。これを 2 回使用すると、ビットが反転してから再度反転し、オペランドと同等の標準 Javascript 値を整数形式で返します。の省略形ですparseInt(myInt)
。
これは、値を切り捨てるハックな方法で、Math.floor
負の数に対して異なる動作をすることを除いて、少し似ています。たとえば、 -15.9 ( ~~-15.9
) を切り捨てる-15
と になりますが、フローリングでは常に最小の数値に丸められるため、 にMath.floor(-15.9)
なります16
。
それを行う別の方法は、 zero で OR することです。
var a = 15.9 | 0; //a = 15
値を整数に変換します。