js布爾操做符小記

    爲了提升學習效率斷了下網,沒想到這麼渣渣網斷了以後就連不上了==廢話少說,開始正題。學習

    從新看紅皮書,重點記一下布爾操做符。布爾操做符有 !&&||spa

       一,邏輯非對象

        先說說 !, 非是布爾操做符中惟一一個會把全部數據類型轉換爲布爾類型的。拿幾個特殊值爲例:效率

          若是操做數爲 null,則 !null返回 true變量

          若是操做數爲 undefined,則 !undefined 返回true數據類型

          若是操做數爲 NaN,則 !NaN 返回trueim

          有了 邏輯非,就能夠用兩個!!來判斷一個數據類型的布爾值了=.=(表問我怎麼忽然用這麼傲嬌的符號)。數據

      二,邏輯與類型轉換

        邏輯與是個短路操做,即若是第一個操做符是null/undefined/NaN 那麼 就直接返回 null/undefined/NaN undefined

        若是第一個操做數是對象,則返回第二個操做數。若是兩個操做數都是對象,那麼返回第二個操做數。(注意,返回操做數不是布爾值!!!!!)。

      三,邏輯或

          若是第一個操做數是對象,則返回第一個操做數。若是第一個操做數求值結果爲false,則返回第二個操做數。若是兩個操做數是對象則返回第一個操做數。

          若是兩個操做數都是null/NaN/undefined,則返回null/NaN/undefined

         因此咱們能夠利用邏輯或的這一行爲,避免給變量賦null/undefined例如 var value = preferredObject  ||  backupObject 

    以前一直覺得 若是不是特殊值得話,布爾操做符都會返回布爾值。果真人醜就要多讀書。 

相關文章
相關標籤/搜索