JavaScript按位取反运算符
由于JavaScript数组里面没有contain的方法,所以每次查找一个元素是否存在时都使用indefOf去操作,而indexOf并没有给一个boolean值,而是给了一个下标,多了一步,这个时候按位取反运算符便排上了用途
按位取反: 顾名思义,先把二进制的0101编码加上一位,再取相反符合
取值如下
~1 // -2
~2 // -3
~3 // -4
而只有一种情况是会被if默认判断为false的,即0
// 在数组找不到的情况下返回-1 // ~-1 ==> 0 if(~arr.indexOf(val)) { // if val in arr } else { // else }
当然,~按位取反还有最强大的功能,便是替代了Math.floor
~~取反运算符的运行速度比Math.floor快了不少
~~5.1231232 // 5
~~3.14125926 // 3