逻辑运算符和位运算符
逻辑运算符和位运算符
逻辑运算符和位运算符
逻辑运算符
逻辑与(&&)
逻辑或(||)
位运算符
按位与运算符(&)
按位或运算符(|)
逻辑运算符
逻辑与(&&)
逻辑运算符(与),只有两个运算数都为true是才是true,其他则为false。
逻辑或(||)
逻辑运算符(或),如果其中一个或两个操作数都是真值,返回真值,如果两个操作数都是假值,返回假值。
注意:逻辑与和逻辑或都是先计算左操作数,在计算右操作数。逻辑与左操作数计算结果是假值时,则返回假值,无需计算右操作数,逻辑或左操作数计算结果是真值时,则返回真值,无需计算右操作数。
位运算符
&和|原本是本位运算符,但是js是无类型的语言、各数据类型可以自由转换,所以当(&)和(|)做“逻辑运算”的时候,true被转换成1,false被转换成0,再进行按位运算。
按位与运算符(&)
按位与运算符(&)是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
//3的二进制是011,5的二进制是101,011&101是001 结果:1
console.log(3&5)
//10的二进制是1010,15的二进制是1111 1010&1111是1010 结果:10
console.log(10&15)
//6的二进制是0000110,100的二进制是1100100 0000110&1100100是0000100 结果是:4
console.log(6&100)
console.log(true&false)//true转为1,false转为0,1&0是0,结果是:0
console.log(false&false)//false转为0,0&0是0,结果是:0
console.log(null&1)//null转为0,0&1是0,结果是:0
1
2
3
4
5
6
7
8
9
按位或运算符(|)
按位或运算符(|)是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
console.log(1|5)//1的二进制001,5的二进制是101,001|101是101 结果:5
console.log(true|false)//true转为1,false转为0,1|0是1,结果是:1
console.log(false|false)//false转为0,0|0是0,结果是:0
console.log(null|1)//null转为0,0|1是1,结果是:1
1
2
3
4
注意:按位运算符与或且在两个操作数比较时,如果转换成的二进制位数不同,则在末尾用0补齐即可。
十进制转二进制:
var num=15;
console.log(num.toString(2))//1111
1
2
二进制转十进制
var num='0000100';
console.log(parseInt(num,2))//4
————————————————
版权声明:本文为CSDN博主「辣辣的草莓酱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38233549/article/details/89032452