在javascript中,关于‘~’也是位操作符not的运用

前两天,在看一本书中一个要领,涌现了“~”标记,我着实不解,代码以下

intersect : function(t1,t2){
            return t1.filter(function(item){
                return ~t2.indexOf(item);
            });
        }

固然 t2.indexOf这个要领是跟字符串的indexOf的要领是一样的,找获得返回位置,找不到返回-1。
当看到 第二个return 前面~着实不解,厥后查了一点材料,才发明原来是Js中的位操纵符,
材料以下:

位运算符 NOT 由~示意.NOT 运算符的本质是对数字求负,然后减 1.
位运算符 NOT 是三步的处置惩罚历程.
a.把运算符转换成 32 位数字
b.把二进制情势转换成它的二进制反码
c.把二进制反码转换成浮点数

那末就好诠释了,返回-1 再对其~操纵,就得出了0,这就省掉了一个if推断,0关于布尔值的话就为假。看来关于Js中另有太多本身没有关注过的东西,今后还要多多勤奋。

    原文作者:zasqw2222
    原文地址: https://segmentfault.com/a/1190000002450136
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞