js中!~什么意思

Posted cosyer的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中!~什么意思相关的知识,希望对你有一定的参考价值。

(function () {
    var names = [];
    return function (name) {
        addName(name);
    }
    function addName(name) {
        if (!~names.indexOf(name))//如果存在则不添加
            names.push(name);
        console.log(names);// ["linkFly"]
    }
}())(‘linkFly‘);

原码
原码表示法最高位为符号位,该位为0表示正数,1表示负数。其余位表示数的绝对值。
反码
对于一个带符号的数来说,正数的反码与其原码相同;负数的反码为其原码除符号位以外的各位按位取反。反码常用来做求补码过程中的中间形式。
补码
正数的补码与其原码和反码相同;负数的补码是对它的原码除符号位以外各位取反,并在末位加1而得到,即为该数的补码加1。计算机内的数一般以补码形式表示。在补码中用(-128)D代替了(-0)D,注意:(-128)D没有相对应的原码和反码,(-128)D = (1000,0000)B。
求补运算
求补运算不考虑符号位,对它的原码各位取反,并在末位加1而得到。对一个数进行求补运算所得的是该数相反数的补码。

if (!~names.indexOf(name)) 中的操作符"!~" 什么意思,不理解,先从~入手。

测试可以得出结果值有这个的规律 -(X+1)

indexOf为0是取反不存在 !0为true添加。indexOf==-1 //to do的xx写法

以上是关于js中!~什么意思的主要内容,如果未能解决你的问题,请参考以下文章

有人知道下面的代码片段是啥意思吗?

这段js代码啥意思

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

js常用代码片段(更新中)

Chrome-Devtools代码片段中的多个JS库

XSS:如何从 C# 中的字符串中删除 JS 片段?