时间能淡忘一切,只要时间够久,即便是曾经最深入的记忆。网络
按位取反,涉及到补码等计算机知识,大学时学过,如今提起原码、反码、补码,依稀有点影响,但具体的已淡忘的不留一丝痕迹。借助网络的力量,再次来记忆一遍。优化
在 js 中是经过 ~
符号进行按位取反操做的。具体的规则以下:code
补充:为何要有补码及补码修正?由于计算机中减法是经过加一个负数处理的,而负数又是经过补码保存的。目的就是为了统一加法减法。原码:效率
举例:原理
~9 结果:-10
原码:00001001
反码:11110110
补码:10001001
修正:10001010 1是负,加1修正
转换:-0008020 -> 10计算机
~-9 结果:8
原码:10001001
反码:01110110
补码:00001001
修正:00001000 0是正,减1修正
转换:+0008000 -> 8时间
在 js 中运用:位运算的效率高于符号运算co
let str = 'wwr23'; if (str.indexOf('2') > -1)) {// 存在 } // 优化替换,原理 ~-1 // 0 ~0 // -1 ~1//-2 ~2//-3 只要不为0都为true if (~str.indexOf('2'))) {// 存在}