11

可能重复:
JavaScript 中的“双波浪号”(~~) 运算符是什么?

我在 node.js 库的源代码中找到了这段代码。~~对变量有什么影响input

inArray[3] = ~~input;

它还以其他方式使用:

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

3 回答 3

15

运算符翻转其~操作数的位。使用它两次翻转位,然后再次翻转它们,返回与操作数等效的标准 Javascript 值,但以整数形式。它是 的简写parseInt(myInt)

于 2012-04-10T18:35:56.140 回答
10

这是截断值的一种骇人听闻的方式,有点像Math.floor这样,除了负数的行为不同。例如,截断 -15.9 ( ~~-15.9) 给出-15,但取整它总是朝最小的数字舍入,所以Math.floor(-15.9)会给出16

另一种方法是 OR 与 zero

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

它将值转换为整数。

于 2012-04-10T18:34:18.247 回答