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
| 用作取整运算符