js && || 運算符

2019年清明三天假,終於有時間寫寫,昨天有同事問我關於邏輯運算符 &&(邏輯與) || (邏輯或) 運算符,看來不少人基礎仍是比較薄弱,今天就寫寫&& || 運算符基礎。spa

前言

當存在 && 和 || 表達式時,兩邊都會轉化爲布爾類型(Boolean),而後再進行運算。code

在js邏輯運算中,0、''、null、false、undefined、NaN都會轉爲false,其餘都爲true。 blog

&& 運算符優先級高於 ||。class

一、&& 運算符

  • 兩邊條件都爲true時,結果才爲true
  • 若是有一個爲false,結果就爲false
  • 當第一個條件爲false時,就再也不判斷後面的條件

注意:基礎

當數值參與邏輯與運算時,結果爲true,那麼會返回的會是第二個爲真的值。im

若是結果爲false,返回的會是第一個爲假的值。總結

二、|| 運算符

  • 只要有一個條件爲true時,結果就爲true
  • 當兩個條件都爲false時,結果才爲false
  • 當一個條件爲true時,後面的條件再也不判斷

注意:demo

當數值參與邏輯或運算時,結果爲true,會返回第一個爲真的值。img

若是結果爲false,會返回第二個爲假的值。di

三、demo

1 && 2 && 0 && 1 || 3 && 1 || 2  // 1

1 && 2 && 0 && (1 || 3) && 1 || 2  // 2

null && 2 && '' && (1 || 3) && 1 || 2 && '' // ""

其實很是簡單,只要根據轉爲boolean的規則,而後看最後一步執行了什麼就返回什麼。

總結

  •  &&、||、! 運算符都會把兩邊的轉爲boolean 類型。
  • ''、null、underfined、NaN、0、false 這6個都會轉爲false,其他會轉爲true。
  • && 、|| 都是是短路操做符,&& 只要第一個是false 就不會計算後面,|| 只要第一個是true 就不會計算後面。
  • && 運算符優先級高於 ||。
  • && 、|| 都是返回最後執行的那部分表達式。
相關文章
相關標籤/搜索