我有时会看到这个符号~
在代码中。我尝试过~1
,它表明0
。
因此,我可以看到一些使用这个技巧的代码:
if ( !~text.indexOf('a') ){ }
检查真值。这是一种位移吗?
这是按位非运算符。它将操作数转换为 32 位整数,然后产生一个人的补语(反转该整数的每一位)。
最后,!
将返回true
当且仅当该操作的结果是0
.
一些例子可能会有所帮助:
x | x (bin) | ~x (bin) | ~x | !~x
-3 | 1111…1101 | 0000…0010 | 2 | false
-2 | 1111…1110 | 0000…0001 | 1 | false
-1 | 1111…1111 | 0000…0000 | 0 | true
0 | 0000…0000 | 1111…1111 | -1 | false
1 | 0000…0001 | 1111…1110 | -2 | false
换句话说,
if ( !~text.indexOf('a') ) { }
相当于:
if ( text.indexOf('a') == -1 ) { }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)