~ 按位取反 (加一取反)
~5 = -6
~4 = -5
~-4 = 3
~~ 小数向下取整
~~(Math.random()*100)
应用
小数取整,效率好于Math.floor()
~~12.123 = 12
~~-123.132 = -123
转化 ```javascript ~~null = 0 ~null = -1
~~undefined = 0 ~undefined = -1
~~Infinity = 0 ~Infinity = -1
~~NaN = 0 ~NaN = -1
~~0 = 0 ~0 = -1
~~[] = 0 ~[] = -1
~~{} = 0 ~{} = -1
~~false = 0 ~false = -1
~~true = 1 ~true = -2
<a name="stMW7"></a>
### | 或运算
- 取整
```javascript
1.2|0 // 1
1.8|0 // 1
-1.2|0 // -1
console.log(12 & 5); //返回值4
^ 异或
console.log(12 ^ 5); //返回值9