1、位非 ~
var a = 10;
console.log(~a);//这个表示+1取负
var str = "abcde"
if (str.indexOf('a')) {
}
console.log(str.indexOf('b'))
// if (~str.indexOf('a')) {
// console.log('找到')
// }
2、位与运算 &
只有两个条件都是1,结果为1
var b = 5;
var c = 6;
console.log(b & c)
// 5 -二进制> 101
// 6 -> 110
// 5&6 = 100 结果为4
3、位或运算 |
只要有一个为1,结果都为1
var b = 5;
var c = 6;
console.log(b | c);
// 101
// 110
// 111
4、异或运算 ^
相同的就是0,不同的就是1
console.log(b ^ c)
// 101
// 110
// 011
var x = 1235;
var y = 36;
var z = x ^ y;
console.log(z ^ y)
// 加密用途
// 密码 ^ 加密串 ==== 加密后的密码
// 加密后的密码 ^ 加密串 == 密码
5、左右移位 << >>
console.log(8 << 2);
// 1000 << 1000 00
console.log(8 >> 2)
// 1000 >> 10
console.log(1 << 6);//最快速的 求2的n次幂 console.log(1<<n)
// 直接将蓝色变为红色
console.log((0x0000FF << 16).toString(16))
最快求2的n次幂 方法
//求2的6次幂
console.log(1 << 6);//最快速的 求2的n次幂 console.log(1<<n)