逻辑与,&&
1.若两个操作数都为布尔类型,则若有其中一个条件不成立,则返回false
2.若两个操作数中有其中一个或两个操作数不是布尔类型,就按照隐式转换结果返回。
(若第一个操作数隐式转换结果是true,则返回第二个操作数的值)
(若第一个操作数隐式转化结果是false,则返回第一个操作数的值)
(若操作数中其中有一个是null,NaN,undefined,则返回对应的null,NaN,undefined)
例:
console.log(88&&55);
返回:55
补充:除string的" " 和number的0隐式转换成false之外,其他都默认转换成true
逻辑或,||
1.两个操作数都是布尔类型的时候,则其中一个条件成立则返回true
2.若两个操作数其中一个或两个不是布尔类型,同样根据隐式转换类型返回结果。
短路判断
1.逻辑或判断路径:从第一个操作数判断开始,直到找到true或隐式转换类型是true的结束。找到之后再返回找到后的值。
例:console.log(""||0||88);
返回:88
2.如果两个操作数都是null-null,NaN-NaN,undefined-undefined,则对应返回null,undefined,NaN
console.log(" "||" ");
逻辑非,!
返回值只有布尔类型,可以凭借隐式转换来返回结果
console.log(!88);
返回:false
88隐式转换为true,!true==false;
讲完