Skip to the content.

JS中常用的按位运算应用

~~ 取反再取反, 返回整数

& 按位与

& 1 运算可以“快速”判断奇数还是偶数

6 & 1       // 0 , 偶数
9921 & 1    // 1 , 奇数

| 按位或

| 0 运算可以向下取整,不同于Math.floor,小数位会直接舍弃

7.998 | 0       / 7
-7.98 | 0       / -7 

^ 按位异或

var num1 = 1, num2 = 2;
num1 ^= num2; // num1 = num1 ^ num2 = 1 ^ 2 = 3
num2 ^= num1; // num2 = num2 ^ (num1 ^ num2) = 2 ^ (1 ^ 2) = 1
num1 ^= num2; // num1 = num1 ^ num2 = 3 ^ 1 = 2
console.log(num1); // 2
console.log(num2); // 1
以上的例子在平常可能会比较容易用到或看到,也是属于比较容易理解的。一些比较复杂的、难理解的,我觉得应该尽量少用,因为会给阅读者带来困难,也会给自己带来麻烦。