~~在JavaScript / node.js中做了些什么?
可能重复:
什么是JavaScript中的“double tilde”(~~)运算符?
我在node.js库的源代码中find了这段代码。 ~~
对input
variables有什么影响?
inArray[3] = ~~input;
它也用于其他方面:
return ~~ ((a - b) / 864e5 / 7 + 1.5);
~
运算符翻转其操作数的位。 使用它两次翻转位,然后再次翻转它们,返回一个标准的JavaScript值等价于操作数,但以整数forms。 这是parseInt(myInt)
的简写。
截断一个值是一种骇人的方式,有点像Math.floor
做法,除了负数的行为不同。 例如,截断-15.9( ~~-15.9
)给出了-15
,但是它总是朝向最低的数字,所以Math.floor(-15.9)
将会给出16
。
另一种做法是将OR与零 。
var a = 15.9 | 0; //a = 15
它将该值转换为整数。