邏輯與和邏輯或

邏輯與操做能夠應用於任何類型的操做數,而不單單是布爾值。在有一個操做數不是布爾值的狀況下,邏輯與操做就不必定返回布爾值;此時,它遵循下列規則:對象

  • 若是第一個操做數是對象,則返回第二個操做數;undefined

  • 若是第二個操做數是對象,則只有在第一個操做數的求值結果爲true的狀況下才會返回該對象;

  • 若是兩個操做數都是對象,則返回第二個操做數;

  • 若是有一個操做數是null,則返回null;

  • 若是有一個操做數是NaN,則返回NaN;

  • 若是有一個操做數是undefined,則返回undefined。

邏輯與操做屬於短路操做,即若是第一個操做數可以決定結果,那麼就不會再對第二個操做數求值。對於邏輯與操做而言,若是第一個操做數是false,則不管第二個操做數是什麼值,結果都再也不多是true了。

與邏輯與操做類似,若是有一個操做數不是布爾值,邏輯或也不必定返回布爾值;此時,它遵循下列規則:

  • 若是第一個操做數是對象,則返回第一個操做數;

  • 若是第一個操做數的求值結果爲false,則返回第二個操做數;

  • 若是兩個操做數都是對象,則返回第一個操做數;

  • 若是兩個操做數都是null,則返回null;

  • 若是兩個操做數都是NaN,則返回NaN;

  • 若是兩個操做數都是undefined,則返回undefined。

與邏輯與操做符類似,邏輯或操做符也是短路操做符。也就是說,若是第一個操做數的求值結果爲true,就不會對第二個操做數求值了。

相關文章
相關標籤/搜索