[英]What does this mean?: x || x === {}
以下是:
x || x === {}
不是說!!x
,也就是說, x
是定義的?
這種比較沒有任何意義,因為要么x
是真實的,那么你得到x
的結果,或者falsy,你得到false
(一個假值永遠不會嚴格等於一個空對象實例)。
一個簡潔的版本將是
x || false
給我x
或false
。
x || x === {}
x || x === {}
基本上是指x || false
x || false
。
!!x
表示“是x
truthy”,所以它不完全相同 - x || x === {}
如果x
是真的,則x || x === {}
將返回x
。 在相同的情況下, !!x
將返回true
。
||
運算符意味着“如果左側是真實的(非null
, undefined
,不是0
等等 - 請參閱JavaScript中的所有falsey值以獲取詳細信息)返回左側,否則返回右側”。
在右側,你有x === {}
總是求值為false
,因為嚴格的比較意味着比較參考(即“ x
是與{}
相同的對象,這永遠不會是真的)
!!x
和x || x === {}
只有當x === true
或x === false
x || x === {}
才會相同
||
如果LHS是真值,則返回左側。 因此,如果x
是真值,則返回x
。
否則,它將x
與新對象進行比較,該對象始終為false
,並返回該對象。
因此,如果x
為真,則得到(未修改的) x
否則會得到一個顯式的布爾值false
。
這與!!x
不同,因為如果x
是真值,則返回布爾值true
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.