今天看到同事的代码里面出现了 "!!~" 符号,看不懂,和同事探讨了一下:
-
!是取反,同时这个取反可以将值转化为boolean
-
~符号是二进制取反符号
-
!!~就是先取反在转换为Boolean类型
-
!!~可以用在负数转Boolean做判断(参考下面代码)
~-1
0
~-1 == false
true
!!~-1
false
!~-1
true
~0
-1
!0
true
!1
false
~-1 === false
false
!!~-1 === false
true
//=========================
!!4
true
!!3
true
!!-1
true
if (!~names.indexOf(name))//如果存在则不添加
names.push(name);
Comments | NOTHING