在JavaScript/node.js中做什么?

Kat*_*ato 10 javascript node.js

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

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

inArray[3] = ~~input;
Run Code Online (Sandbox Code Playgroud)

它还以其他方式使用:

return ~~ ((a - b) / 864e5 / 7 + 1.5);
Run Code Online (Sandbox Code Playgroud)

Ell*_*lle 13

~运营商翻转其操作数的位.使用它两次翻转位,然后再次翻转它们,返回相当于操作数的标准Javascript值,但是以整数形式.这是简写parseInt(myInt).


Ale*_*pin 9

这是截断一个值的一种hackish方式,有点像什么Math.floor,除了这对负数表现不同.例如,截断-15.9(~~-15.9)给出-15,但是地板总是向最低数字舍入,所以Math.floor(-15.9)会给出16.

另一种方法是OR为零.

var a = 15.9 | 0; //a = 15
Run Code Online (Sandbox Code Playgroud)