逻辑与操纵可以应用于任何范例的操纵数,而不仅仅是布尔值。在有一个操纵数不是布尔值的情况下,逻辑与操纵就不肯定返回布尔值;此时,它遵照以下划定规矩:
假如第一个操纵数是对象,则返回第二个操纵数;
假如第二个操纵数是对象,则只要在第一个操纵数的求值效果为true的情况下才会返回该对象;
假如两个操纵数都是对象,则返回第二个操纵数;
假如有一个操纵数是null,则返回null;
假如有一个操纵数是NaN,则返回NaN;
假如有一个操纵数是undefined,则返回undefined。
逻辑与操纵属于短路操纵,即假如第一个操纵数可以决议效果,那末就不会再对第二个操纵数求值。关于逻辑与操纵而言,假如第一个操纵数是false,则不管第二个操纵数是什么值,效果都不再多是true了。
与逻辑与操纵类似,假如有一个操纵数不是布尔值,逻辑或也不肯定返回布尔值;此时,它遵照以下划定规矩:
假如第一个操纵数是对象,则返回第一个操纵数;
假如第一个操纵数的求值效果为false,则返回第二个操纵数;
假如两个操纵数都是对象,则返回第一个操纵数;
假如两个操纵数都是null,则返回null;
假如两个操纵数都是NaN,则返回NaN;
假如两个操纵数都是undefined,则返回undefined。
与逻辑与操纵符类似,逻辑或操纵符也是短路操纵符。也就是说,假如第一个操纵数的求值效果为true,就不会对第二个操纵数求值了。