逻辑与
注意:逻辑与操作数可以是任何类型,不仅仅是bool类型的,当其中一个操作数不是bool类型时,其返回值不一定是bool类型的。
如果一个操作数是object,另外一个操作数是bool类型的,返回bool值:
document.body && false = false;
如果两个操作数都是object,返回第二个操作数
document.body && 123 = 123; 123 && document.body = object
任意一个操作数是null,返回null
任意一个操作数是NaN,返回NaN
任意一个操作数是undefined,返回undefined
true && null = null; true && NaN = NaN; true && undefined = undefined;
逻辑或
注意:类似逻辑与一样,如果两个操作数不都是bool类型的时候,返回值不一定是bool类型的。
如果一个操作数是object另外一个是bool类型,返回object
document.body || false = object;
如果两个操作数都是object,返回第一个object
123 || document.body = 123 ; document.body || 123 = object
如果两个操作数都是null,返回null,NaN 和 undefined类似
null || null = null; NaN || NaN = NaN; undefined || undefined = undefined;
如果两个之中有一个是null或NaN或者undefined,返回另外一个操作数
null || 123 = 123; NaN || 123 = 123; undefined || document.body = object;