在JavaScript / node.js中做什么?

时间:2012-04-10 18:32:47

标签: javascript node.js

  

可能重复:
  What is the “double tilde” (~~) operator in JavaScript?

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

inArray[3] = ~~input;

它也以其他方式使用:

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

3 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:9)

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

另一种方法is to OR with zero

var a = 15.9 | 0; //a = 15

答案 2 :(得分:2)

它将值转换为整数。