逻辑运算符中的特殊情况
逻辑运算符
AND &&
若两边有一个不是布尔值,与运算不一定返回布尔值,此时可遵循以下原则:
1.第一个操作数是对象,则返回第二个操作数。
2.第二个操作数是对象,且第一个操作数返回true,才返回第二个操作数,否则返回false。
3.有一个操作数是null,则返回false。
4.有一个操作数是undefined,则返回undefined。
5.如果第一个操作数返回false,第二个操作数不管true还是false,都返回false。
OR ||
若两边有一个不是布尔值,与运算不一定返回布尔值,此时可遵循以下原则:
1.第一个操作数是对象,则返回第一个操作数。
2.第一个的求值结果为false,则返回第二个操作数。
3.两个都是对象,返回第一个对象。
4.两个操作数都是null,则返回null。
5.两个操作数都是NaN,则返回NaN。
6.两个操作数都是undefined,则返回undefined。
NOT !
1.操作数是一个对象,则返回false。
2.操作数是一个空字符串,则返回true。
3.操作数是一个非空字符串,则返回false。
4.操作数是一个0,则返回true。
5.操作数是一个非0数值,则返回false。
6.操作数都是null,则返回true。
7.操作数都是NaN,则返回true。
6.操作数都是undefined,则返回true。
浙公网安备 33010602011771号