Some magical JS bit operation

& (Bitwise AND)

判断一个数是否为2的n次幂,可以将其与自身减一相与

var number = 4
(number & number -1) === 0 // true

^ (Bitwise exclusive or)

不用第三个变量,就可以交换两个变量的值
var a = 4,b = 3
a = a ^ b  //    7
b = a ^ b  //    4
a = a ^ b  //    3
或者还有这样的操作也可以达成效果
var a=1,b=2;a=[b,b=a][0];

~ (Bitwise NOT)

~~1.34 === 1   // true,舍弃小数取整。与Math.floor和Math.ceil不同,与parseInt()函数功能大体相同,~~无法返回NaN结果。

Guess you like

Origin www.cnblogs.com/everlose/p/12501182.html