為了提高學習效率斷了下網,沒想到這麼渣渣網斷了之後就連不上了=。=
廢話少說,開始正題。
重新看紅皮書,重點記一下布林操作符。布林操作符有 !,&&
,||、一,邏輯非
先說說 !
, 非是布林操作符中唯一乙個會把所有資料型別轉換為布林型別的。拿幾個特殊值為例:
如果運算元為 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發射的資料,直到第...