一、&& 与(并且,只要有一个不成立就返回false)
注意:在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回值,此时它遵循下列规则:
1.如果第一个操作数隐式类型转换后为true,则返回最后一个操作数。
2.如果第一个操作数隐式类型转换后为false,则返回第一个操作数。
3.如果有一个操作数是null,则返回null。
4.如果有一个操作数是NaN,则返回NaN。
5.如果有一个操作数是undefined,则返回undefined。
二、|| 与(或者,只要有一个成立就返回true)
注意:在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回值,此时它遵循下列规则:
1.如果第一个操作数隐式类型转换后为true,则返回第一个一个操作数。
2.如果第一个操作数隐式类型转换后为false,则依次往后判断。
3.如果两个数都是null,则返回null。
4.如果两个数都是NaN,则返回NaN。
5.如果两个数都是undefined,则返回undefined。
三、!非(相反,返回值为布尔型)
隐式类型转换为false的值,只有以下六种:空字符串(""),数字0(0),undefined,null,false本身,NaN
!!