逻辑与和逻辑或

逻辑与操做能够应用于任何类型的操做数,而不单单是布尔值。在有一个操做数不是布尔值的状况下,逻辑与操做就不必定返回布尔值;此时,它遵循下列规则:对象

  • 若是第一个操做数是对象,则返回第二个操做数;undefined

  • 若是第二个操做数是对象,则只有在第一个操做数的求值结果为true的状况下才会返回该对象;

  • 若是两个操做数都是对象,则返回第二个操做数;

  • 若是有一个操做数是null,则返回null;

  • 若是有一个操做数是NaN,则返回NaN;

  • 若是有一个操做数是undefined,则返回undefined。

逻辑与操做属于短路操做,即若是第一个操做数可以决定结果,那么就不会再对第二个操做数求值。对于逻辑与操做而言,若是第一个操做数是false,则不管第二个操做数是什么值,结果都再也不多是true了。

与逻辑与操做类似,若是有一个操做数不是布尔值,逻辑或也不必定返回布尔值;此时,它遵循下列规则:

  • 若是第一个操做数是对象,则返回第一个操做数;

  • 若是第一个操做数的求值结果为false,则返回第二个操做数;

  • 若是两个操做数都是对象,则返回第一个操做数;

  • 若是两个操做数都是null,则返回null;

  • 若是两个操做数都是NaN,则返回NaN;

  • 若是两个操做数都是undefined,则返回undefined。

与逻辑与操做符类似,逻辑或操做符也是短路操做符。也就是说,若是第一个操做数的求值结果为true,就不会对第二个操做数求值了。

相关文章
相关标签/搜索