js布林操作符小記

2022-08-24 15:09:12 字數 902 閱讀 6269

為了提高學習效率斷了下網,沒想到這麼渣渣網斷了之後就連不上了=。=

廢話少說,開始正題。

重新看紅皮書,重點記一下布林操作符。布林操作符有 !,&&

,||、一,邏輯非

先說說 !

, 非是布林操作符中唯一乙個會把所有資料型別轉換為布林型別的。拿幾個特殊值為例:

如果運算元為 null,

則 !null

返回 true

如果運算元為 undefined,

則 !undefined 

返回true

如果運算元為 nan,

則 !nan 

返回true

有了 邏輯非,就可以用兩個!!來判斷乙個資料型別的布林值了=.=

(表問我怎麼突然用這麼傲嬌的符號)。

二,邏輯與

邏輯與是個短路操作,即如果第乙個操作符是null/undefined/nan 

那麼 就直接返回 

null/undefined/nan 

。如果第乙個運算元是物件,則返回第二個運算元。如果兩個運算元都是物件,那麼返回第二個運算元。(注意,返回運算元不是布林值!!!!!)。

三,邏輯或

如果第乙個運算元是物件,則返回第乙個運算元。如果第乙個運算元求值結果為false

,則返回第二個運算元。如果兩個運算元是物件則返回第乙個運算元。

如果兩個運算元都是null/nan/undefined

,則返回

null/nan/undefined

。所以我們可以利用邏輯或的這一行為,避免給變數賦null/undefined

。例如 var value = preferredobject  ||  backupobject 

之前一直以為 如果不是特殊值得話,布林操作符都會返回布林值。果然人醜就要多讀書。 

布林操作符

邏輯與 blue true 與boolean作用相同 邏輯與是短路操作符,如果第乙個引數為物件,則結果為第二個引數。有乙個運算元是null,返回null。有乙個運算元是undefined返回undefined。有乙個運算元是nan返回nan。var o new object o 1 1 o fals...

二元操作符(布林操作符)和三元操作符

操作符始終寫在前一行,以免分號的隱式插入產生預想不到的問題 var x a?b c var y a?longexpressiona longexpressionb var z a?longexpressionc longexpressiond 二元布林操作符是可短路的,只有在必要時計算最後一項 1....

Rxjava條件和布林操作符

條件操作符 作用amb 給定多個observable,只讓第乙個發射資料的observable發射資料 defaultifempty 發射來自原始的observable的資料,如果原始observable沒有發射資料則發射乙個預設資料 skiputil 丟棄原始observable發射的資料,直到第...