js中的"~~"和"|"

~~ (取整)

~~代表双非按位取反运算符,

如果你想使用比Math.floor()更快的方法,那就是它了。

需要注意,对于正数,它向下取整;对于负数,向上取整;非数字取值为0,它具体的表现形式为:

~~null;      // => 0
~~undefined; // => 0
~~Infinity;  // => 0
--NaN;       // => 0
~~0;         // => 0
~~{};        // => 0
~~[];        // => 0
~~(1/0);     // => 0
~~false;     // => 0
~~true;      // => 1
~~1.9;       // => 1
~~-1.9;      // => -1

| (取整)

1.2|0  // 1
1.8|0 // 1
-1.2|0 // -1

原文链接:
https://www.cnblogs.com/ll15888/p/11996989.html

原文地址:https://www.cnblogs.com/uakora/p/14767392.html