-
&& 与运算符
使用&&将返回第一个条件为假的值。 如果每个操作数的计算值都为true,则返回最后一个计算过的表达式。 -
|| 或运算符
使用||将返回第一个条件为真的值。 如果每个操作数的计算结果都为false,则返回最后一个计算过的表达式。 -
& 按位与
运算规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为1,否则为0。 比如:129&128.129转换成二进制就是10000001, 128转换成二进制就是10000000。 从高位开始比较,得到10000000,即128. 判断奇数、偶数 偶数 & 1 = 0 奇数 & 1 = 1 5&1 //1 4&1 //0 -
| 按位或
运算规则:两个数都转为二进制,然后从高位开始比较,两个数只要有一个为1则为1,否则就为0。 比如:129|128.129转换成二进制就是10000001, 128转换成二进制就是10000000。 从高位开始比较,得到10000001,即129. |的行为取决于处理的是正数还是负数,所以最好只在确定的情况下使用这个快捷方式。 如果n为正,则n | 0有效地向下舍入。 如果n为负数,则有效地向上舍入。 更准确地说,此操作将删除小数点后面的任何内容,将浮点数截断为整数。 console.log(23.9 | 0); // Result: 23 console.log(-23.9 | 0); // Result: -23 console.log((1553 / 10) | 0); // Result: 155 console.log((1553 / 100) | 0); // Result: 15 console.log((1553 / 1000) | 0); // Result: 1 -
~ 按位非
运算规则:一般作用与一个整形参数前,他将运算数的所有位取反。 如果位为0,结果是1,如果位为1,结果是0\. 比如:~37 在js中,对于一个整数使用~运算符,相当于改变他的符号并且减一(小数部分会被舍掉) ~10 //-11 ~-10 //9 ~3.14 //-4 ~-3.14 //2 所以双~运算符,可以用来取整(是舍弃小数,正数和负数的运算结果有点区别,需要留意) ~~3.14 //3 ~~-3.14 //-3 -
^ 按位异或
运算规则:两个运算数中只有一个是1的时候是1,其余全是0(如果两个全是1,则为0) 交换变量值 a ^= b; b ^= a; a ^= b; var a = 1, b = 2; a ^= b; b ^= a; a ^= b;//结果a=2,b=1 判断值是否相等 如果两个数做按位异或运算 如果等于0 代表其两个数相等,不等于0则不等 1 ^ 1 = 0 -
<< 左移运算符
运算规则:运算符<<左移第一个运算数中的所有位,移动的位数由第二个运算数指定。移动的位数应该是 0到31的数,新的位用0补充,舍弃舍弃第32位的值。 将一个数左移1位相当于乘2,左移2位相当于乘4,以此类推。 7<<1 //14 7<<2 //28 -7<<1 //-14 -7<<2 //-28 -
<< 又移运算符
运算规则:运算符>>右移第一个运算数的所有位,移动的位数由第二个运算数指定。移动的位数应该是 0到31的数,舍弃右边移出位,填补左边位由原运算数符号决定,确保结果与原操作符一直。如果第一个 运算数是正则高位补0,是负则高位补1 一个正数将一个数右移1位,相当于除2(舍弃余数),右移2位相当于除4, 以此类推(负数会有所不同需要高位补1) 7>>1 //3 7>>2 //1