资讯专栏INFORMATION COLUMN

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

yimo / 2649人阅读

摘要:前两天,在看一本书中一个方法,出现了符号,我实在不解,代码如下当然这个方法是跟字符串的的方法是一样的,找得到返回位置,找不到返回。看来对于中还有太多自己没有关注过的东西,以后还要多多努力。

前两天,在看一本书中一个方法,出现了“~”符号,我实在不解,代码如下

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中还有太多自己没有关注过的东西,以后还要多多努力。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85473.html

相关文章

  • 深入研究js位运算及用法

    摘要:虽然在内部,数值都是以位浮点数的形式储存,但是做位运算的时候,是以位带符号的整数进行运算的,并且返回值也是一个位带符号的整数。如下表应用场景取整对于一般的整数,返回值不会有任何变化。例如,结果为负数存储采用的形式是二进制补码。 什么是位运算? 位运算是在数字底层(即表示数字的 32 个数位)进行运算的。由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并...

    zhoutao 评论0 收藏0
  • 深入研究js位运算及用法

    摘要:虽然在内部,数值都是以位浮点数的形式储存,但是做位运算的时候,是以位带符号的整数进行运算的,并且返回值也是一个位带符号的整数。如下表应用场景取整对于一般的整数,返回值不会有任何变化。例如,结果为负数存储采用的形式是二进制补码。 什么是位运算? 位运算是在数字底层(即表示数字的 32 个数位)进行运算的。由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并...

    hlcfan 评论0 收藏0
  • 深入讲解js位运算及实际用法

    摘要:虽然在内部,数值都是以位浮点数的形式储存,但是做位运算的时候,是以位带符号的整数进行运算的,并且返回值也是一个位带符号的整数。如下表应用场景取整对于一般的整数,返回值不会有任何变化。例如,结果为负数存储采用的形式是二进制补码。 什么是位运算? 位运算是在数字底层(即表示数字的 32 个数位)进行运算的。由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并...

    jifei 评论0 收藏0
  • 11个教程不常被提及JavaScript小技巧

    摘要:这被称为短路求值工作原理与运算符将会返回第一个的值。当所有的操作数都是时,将返回最后一个表达式的结果。或运算符将返回第一个的值。 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略。 1、过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是成员的值都是唯一的,没有重复的值。结合扩展运算符(...)...

    WilsonLiu95 评论0 收藏0
  • PaaS仍旧缺席 别谈云计算格局已定

    摘要:而不久之后将正式登场亮相的服务商们或将成为未来改写中国云计算市场格局的一个个因素。因此,在仍旧缺席的中国云计算市场说格局已定,还为时尚早。云计算业内对IaaS和SaaS的关注度素来高涨。相比之下,关于PaaS的讨论则颇为冷清。想围绕PaaS写个三部曲的想法由来已久,年初接连完成两篇(《PaaS是位好同志,但SaaS公司搞PaaS却不大靠谱》《夹缝求生,PaaS要靠什么来刷存在感?》),第三篇...

    William_Sang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<