可能重复:
What is the “double tilde” (~~) operator in JavaScript?
我在node.js库的源代码中找到了这段代码。 ~~
对input
变量有什么影响?
inArray[3] = ~~input;
它也以其他方式使用:
return ~~ ((a - b) / 864e5 / 7 + 1.5);
答案 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)
它将值转换为整数。