js强制类型转换
关于位运算符~
~a 大致等同于 -(a+1),
它首先将值强制类型转换为 32 位数字,然后执行字位操作“非”(对每一个字 位进行反转)。
在 -(a+1) 中唯一能够得到 0(或者严格说是 -0)的 a 值是 -1。也就是说如果 a 为 -1 时,~
和一些数字值在一起会返回假值 0,其他情况则返回真值。
so,就有了下面的应用
let a = "asdfasf"; if (a.indexOf('a') != -1) { //.... }
等同于
let a = "asdfasf"; if (~a.indexOf('a')) { //.... }
注:indexOf是不能用于对象的!
https://github.com/KeNanMi

浙公网安备 33010602011771号