今天看到同事的代码里面
https://blog.csdn.net/drawlessonsfrom/article/details/119565204?spm=1001.2014.3001.5501
出现了 "!!~" 符号,看不懂,和同事探讨了一下,收获挺多的:
- !是取反,同时这个取反可以将值转化为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