JavaScript在做位运算的时候,会事先将其转换为32位有符号整型(int)并开始计算,在得到结果后再将其转换回JavaScript的数值类型。
| 运算符 | 描述 |
|---|---|
| & | 与 |
| | | 或 |
| ~ | 非 |
| ^ | 异或 |
| << | 左移 |
| >> | 右移 |
JavaScript中唯一的一元位运算符是(~),表示“非”运算。一元运算符
下面以数字5和1为例,进行二进制转换并执行计算
5 二进制 =》 0000 0101
1 二进制 =》 0000 0001
5 && 1 = 1
二进制解说:

总结:如果两个位数不同,则为0
5 || 1 = 5
二进制解说

总结:如果位数上面不同,有1则取1
~5 = -6
二进制解说:

~(-5 ) = 4
二进制解说
第一步:5先转换为-5

第二步:-5取反得4

总结:
5 ^ 1 = 4
二进制解说:

总结:如果位数上面相同,则是0,反之是1
5 << 1 = 10
二进制解说:

总结:0101左移一位是在右边补0, 结果为1010
5 >> 1 = 10
二进制解说:

总结:0101右移一位是在左边补0,结果为0010