JS 一些位操作的妙用

&(按位与)

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

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

^(按位异或)

不用第三个变量,就可以交换两个变量的值
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];

~(按位非)

~~1.34 === 1   // true,舍弃小数取整。与Math.floor和Math.ceil不同,与parseInt()函数功能大体相同,~~无法返回NaN结果。
posted @ 2020-03-15 23:42  Ever-Lose  阅读(431)  评论(0编辑  收藏  举报