简单的理解,对任一数值 x 进行按位非操作的结果为 -(x + 1)
~~x就为 -(-(x+1) + 1)
应用:
1、indexOf()
判断数组或者字符串中是否存在某个元素,一般使用indexOf()如下:
if(str.indexOf(query) != -1) {}
if(str.indexOf(query) >= 0) {}
现在可以更加清爽和高端的写成:
if(~str.indexOf(query)) {}
原理:
不存在返回-1,~-1 = 0
2、~~value的使用
对于浮点数,~~value可以代替parseInt(value),而且前者效率更高些
parseInt(-2.99) //-2
~~(-2.99) //-2