logo

NOT运算符,反转所有位,整数取反,负数取整

~

~x 为 对任一数值 x 进行按位非操作的结果为 -(x + 1)

例如:

~5 = -(5+1) = -6

~(-5) = -(-5+1) = 4

~(1.2) = - (1.2+1) = -2

以前使用:

1
2
3
4
5
const a = [1, 2, 3, 4, 5]
if (a.indexOf(1) > -1) {
console.log('存在');
}
//5.206ms

使用~的话:

1
2
3
4
5
const a = [1, 2, 3, 4, 5]
if (~a.indexOf(1)) {
console.log('存在');
}
//1.186ms

可以达到同样的效果,并且代码看起来简洁不少,同时后面的运算速度快于前面的。

~~

~~x 为 对任一数值 x 进行按位非操作的结果为 -(-(x+1) + 1)

例如:
(-2.99) = -(-(-2.99+1)+1)= -2
以前:console.log(parseInt(-2.99)); //0.417ms
现在:```console.log(
(-2.99)); ``` //0.327ms

使用NOT运算符的速度高于其他