Javascript按位取反操作符(~)
/ / 点击 /JavaScript按位取反运算符(~),是对一个表达式执行按位非运算。
例如:1
2
3~1 = -2
~2 = -3
~99 = -100
运算示例:
1 | var temp = ~5; |
使用小技巧
- 与indexOf配合使用方便进行判断
由于JavaScript数组里面没有contain的方法,所以每次查找一个元素是否存在时都使用indexOf去操作,而indexOf并没有给一个boolean值,而是给了一个下标,多了一步,这个时候按位取反运算符便派上用途。
例如:1
2
3
4
5
6
7
8// 而只有一种情况是会被if默认判断为false的,即0,
// 在数组找不到的情况下返回-1
// ~-1 ==> 0
if(~arr.indexOf(val)) {
// if val in arr
} else {
// else
}
- 替代Math.floor,取整
~~取反运算符的运行速度比Math.floor快了不少
例如:1
2~~5.1231232 // 5
~~3.14125926 // 3
全文完。