我在一些代码中看到了这一点,但我不知道它做了什么:
var jdn = function(y, m, d) { var tmp = (m <= 2 ? -1 : 0); return ~~((1461 * (y + 4800 + tmp)) / 4) + ~~((367 * (m - 2 - 12 * tmp)) / 12) - ~~((3 * ((y + 4900 + tmp) / 100)) / 4) + d - 2483620; };
运营商是做什么的~~?
~~
这~~是一个双非按位运算符。
它被用作 正 数的更快替代品Math.floor()。它不会返回与负数相同的结果,因为它只是去掉小数点后的部分(有关示例,请参见其他答案)。 __Math.floor()
Math.floor()