|、&、~、^运算符
二进制计算里面
| 两数同位是0对应位才是0
1|2 = (0001 或 0010) = 0011 = 3
&两数同位是1对应位才是1
1&2 = (0001 且 0010) = 0000 = 0
^两数同位相同都取0,不同都取1
1^2 = (0001 异或 0010) = 0011 = 3
~每位取反的补码
~2 = 11101(补) = 10010(原)+1 = -(2+1) = -3
补码的转换规则是:最左符号位不变,其余位取反再加1
二进制位运算都是整数运算,计算前都会进行取整,所以可以巧用位运算符来小数取整
~~2.345 = 2
0|3.222 = 3
还有移位运算符,但是平时很少用到
<<
左移运算符
>>
右移运算符
一些javascript的技巧(http://www.haorooms.com/post/js_shiyong_one)