JS中的“&&”与“&”和“||”“|”有什么区别?
在JavaScript中“&&”和“||”是逻辑运算符;“&”和“|”是位运算符。
四个运算符主要区别是运算方法不一样:
1、JavaScript中的位运算符:“&”
运算方法:两个数值的个位分别相与,同时为1才得1,只要一个为0就为0。
举个例子:
31&2 结果为2
理由:31的二进制为11111,2的二进制为10 11111&00010的结果为00010,即2
控制台运行结果:
2、JavaScript中的位运算符:“|”
运算方法:
两个位只要有一个为1,那么结果都为1。否则就为0
举个例子:
31|2 结果为31 31的二进制为11111,2的二进制为10 11111|00010的结果为11111,即31
控制台运行结果:
3、JavaScript中的逻辑运算符“&&”
运算方法:
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
例子:1&&3 为3,1&&0为0,控制台运行结果如下:
4、JavaScript中的逻辑运算符“||”
运算方法:
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
例子:3||1为3,3||0为3,0||3为3 控制台运行结果如下:
扩展资料:
在JavaScript逻辑运算中
0、”“、null、false、undefined、NaN都会判为false,其他都为true。
举个例子:null && 1 结果为null
控制台运行结果如下:
JavaScript中的逻辑运算除了&& 和 || 外,还有逻辑非(!)
逻辑非(!)的判断逻辑如下:
如果一个操作数是一个对象,返回false;
如果一个操作数是一个空字符串,返回false;
如果一个操作数是一个非空字符串,返回false;
如果一个操作数是一个数值0,返回true;
如果一个操作数是任意的非零字符,返回false;
如果一个操作数是null,返回true;
如果一个操作数是NaN,返回true;
如果一个操作数是undefined,返回true;
转载: https://zhidao.baidu.com/question/2118237346586349547.html