js中的~~的妙用

~ : 用於對一個二進制操作數逐位進行取反操作
第 1 步:把運算數轉換爲 32 位的二進制整數。
第 2 步:逐位進行取反操作。
第 3 步:把二進制反碼轉換爲十進制浮點數。
ok 說了那麼多挺費勁的,不過在開發中 有個妙用
~~它代表雙非按位取反運算符,如果你想使用比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

可以過濾掉null undefined Nan false 等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章