簡體   English   中英

這是什么意思?:x || x === {}

[英]What does this mean?: x || x === {}

以下是:

x || x === {}

不是說!!x ,也就是說, x是定義的?

這種比較沒有任何意義,因為要么x是真實的,那么你得到x的結果,或者falsy,你得到false (一個假值永遠不會嚴格等於一個空對象實例)。

一個簡潔的版本將是

x || false

給我xfalse

x || x === {} x || x === {}基本上是指x || false x || false

!!x表示“是x truthy”,所以它不完全相同 - x || x === {} 如果x是真的,則x || x === {}將返回x 在相同的情況下, !!x將返回true

|| 運算符意味着“如果左側是真實的(非nullundefined ,不是0等等 - 請參閱JavaScript中的所有falsey值以獲取詳細信息)返回左側,否則返回右側”。

在右側,你有x === {}總是求值為false ,因為嚴格的比較意味着比較參考(即“ x是與{}相同的對象,這永遠不會是真的)

!!xx || x === {} 只有當x === truex === false x || x === {}才會相同

|| 如果LHS是真值,則返回左側。 因此,如果x是真值,則返回x

否則,它將x與新對象進行比較,該對象始終為false ,並返回該對象。

因此,如果x為真,則得到(未修改的) x否則會得到一個顯式的布爾值false

這與!!x不同,因為如果x是真值,則返回布爾值true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM