~ 按位取反 (加一取反)

  1. ~5 = -6
  2. ~4 = -5
  3. ~-4 = 3

~~ 小数向下取整

  1. ~~(Math.random()*100)

应用

  • 小数取整,效率好于Math.floor()

    1. ~~12.123 = 12
    2. ~~-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

  1. <a name="stMW7"></a>
  2. ### | 或运算
  3. - 取整
  4. ```javascript
  5. 1.2|0 // 1
  6. 1.8|0 // 1
  7. -1.2|0 // -1
  • 计算
    1. console.log(12 | 5); //返回值13

    & 与运算

  1. console.log(12 & 5); //返回值4

^ 异或

  1. console.log(12 ^ 5); //返回值9