JS:~

~ 在JS中作爲位運算符表示取反,即把執行該操作的數值的二進制碼的每一位(共8位)中0和1互換。

類似的還有:

<<左移,<<a 將a第一位丟棄,後七位尾部加0

>>右移,>>a 將a末位丟棄,前七位開頭加0

& 或,a & b 將a和b中所有爲1的位組成新值

 | 與 ,a | b 將a和b中ab同時爲1的位組成新值

^ 異,a ^ b 將a和b中ab不同的位組(即其中一個爲0且另一個爲1,則爲1,兩個都爲0或都爲1,則爲0)成新值

上面請忽略,直接看結果吧

 
  1. console.log(~-2);//1

  2. console.log(~-1);//0

  3. console.log(~0);//-1

  4. console.log(~1);//-2

  5. console.log(~2);//-3

所以 ~a =  -(a + 1)

所以可以這麼用

 
  1. var arr = ['a', 'b']

  2. if(~arr.indexOf('a')){

  3. console.log(true);

  4. }else{

  5. console.log(false);

  6. }

  7. //true

由於indexOf方法返回-1表示不包含指定元素,否則爲包含,所以可以利用~可以把-1轉換爲0,否則爲非0整數

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