小编典典

什么是 JavaScript 中的“双波浪号”(~~)运算符?

all

我在一些代码中看到了这一点,但我不知道它做了什么:

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;
};

运营商是做什么的~~


阅读 144

收藏
2022-03-04

共1个答案

小编典典

~~是一个双非按位运算符。

它被用作 数的更快替代品Math.floor()。它不会返回与负数相同的结果,因为它只是去掉小数点后的部分(有关示例,请参见其他答案)。 __Math.floor()

2022-03-04