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是不能用于对象的!

  

posted @ 2018-09-25 15:57  糊涂一点web  阅读(160)  评论(0)    收藏  举报