一共3个布尔操作符:非,与,或
1. 逻辑非 !
用叹号!来表示逻辑非,需要一个操作数,它会先将操作数转化成布尔类型,然后求逻辑非。
规则如下:
对象,非0数字,非空字符串,返回false;
0,空字符串,null,NaN,undefined,返回ture;
2. 逻辑与 &&
逻辑与需要两个操作数,如果其中一个操作数不是布尔,那么返回结果不一定是布尔值。
规则如下:
如果第一个操作数是对象,那么返回第二个操作数;
如果两个操作数都是对象,那么返回第二个操作数;
如果第一个操作数是ture,第二个操作数是对象,返回第二个操作数;
如果其中一个操作数是null,undefined,NaN,那么返回null,undefined,NaN;
逻辑与操作符判断出第一个操作数是false,就不会再去判断第二个操作数的结果,因为结果不可能再为true了。
3. 逻辑或 ||
逻辑或与逻辑与操作类似,规则如下:
如果第一个操作数是对象,那么返回第一个操作数;
如果两个操作数都是对象,返回第一个操作数;
如果两个操作数都是null,undefined,NaN,那么返回null,undefined,NaN;
如果第一个操作数是false,那么返回第二个操作数;
总结
!操作符的过程是:先将操作数转换成布尔类型,然后求非。编程中可以用!!两个非得出操作数的布尔类型。
&& 操作符输入短路操作。
当第一个操作数的布尔类型已经是false了(空字符串,0,false等),就不会再去判断第二个操作数了,直接返回第一个操作数。
当第一个操作数不为false的时候,此操作会去判断第二个操作数并返回第二个操作数,不论第二个操作数是什么。】
|| 操作符也是短路操作,但是和&&相反。
当第一个操作数的布尔类型是true了,就不会去判段第二个操作数了,直接返回第一个操作数。
当第一个操作数的布尔类型是false的时候(空字符串,0,false等),就返回第二个操作数。