伊谢尔伦2017-06-28 09:31:08
經過 ToInt32。其作用是將被操作數的二進位形式按位翻轉。所以兩個 ~~ 連在一起就相當於進行如下操作:
對操作數進行 ToInt32
按位翻轉
再次位元翻轉其實也還是利用了 ToInt32 的絕對值取整
另外關於~ 操作符有個技巧還是比較實用的:
!= -1~(-1)
的值為0
,而且-1
是唯一一個經過~
運算-1
是唯一一個經過~
運算返回假值的值(包括其他那些特殊的值例如NaN、{}、[] 等都不會回傳假值)字串和陣列的indexOf 函數查找失敗會回傳
-1,這時候就可以用
if(~str.indexOf('str ')) // 來表示找到了比判斷
>= 0
或更優雅,跟用
來判斷非假值有異曲同工之妙
!!
作者:mdluo連結:https://www.zhihu.com/questio...
取整是把浮點數轉換了32位元二進位整數,所以能還原狀態的位元操作都能進行取整,如