JavaScript的平等比較由於其鬆散的鍵入而可能很棘手。本文探討了雙(==)和三重(===)的細微差別等於操作員,以及真實和虛假的價值觀的概念。
理解這些概念會導致更清潔,更可預測的代碼。
JavaScript的動態鍵入允許靈活的值分配,但可能會導致意外的比較結果。 鬆散的平等(==)執行類型的脅迫,通常會導致令人驚訝的結果。嚴格的平等(===)直接比較值和類型,從而進行了更可靠的比較。
>false
,0
,-0
,0n
和""
>。所有其他值都是真實的,包括null
,undefined
>,NaN
和functions。
與真實/虛假的價值觀的寬鬆平等比較可能是不可預測的。例如,'0'
是正確的,但是'false'
是false,[]
是正確的!嚴格的平等避免了這些歧義。 {}
>
為了避免錯誤,請避免直接真實/虛假的比較。使用嚴格的平等(false == 0 == ''
)。這確保了可預測的行為。 [] == true
[] == false
===
Boolean()
javascript變量是鬆散地鍵入的:!!
>
嚴格的平等(===)考慮類型:>
JavaScript的原始類型是:let x; x = 1; // x is a number x = '1'; // x is a string x = [1]; // x is an array
,
,// all true 1 == '1'; 1 == [1]; '1' == [1];
和
>。 其他一切都是一個對象(包括數組)。// all false 1 === '1'; 1 === [1]; '1' === [1];
undefined
null
boolean
number
真實與虛假的價值:bigint
>
string
每個值都有一個布爾等效:symbol
falsy:
,,,
,,
,false
0
>真相:-0
0n
>示例:""
null
undefined
NaN
(已棄用)也是虛假的。
寬鬆平等(==)比較:
>寬鬆的平等導致意外的結果,以真實/虛假的價值:
嚴格的平等(===)比較:
請注意,
始終是。 NaN === NaN
>
false
>
!x
x == false
使用嚴格的平等(===
>轉換為布爾值:Boolean(x)
!!x
了解真實/虛假的價值並使用嚴格的平等可提高代碼可靠性。 避免進行寬鬆比較的陷阱,以防止調試頭痛。
FAQS(縮寫為簡潔):真實/虛假的概念:
值在布爾上下文中被視為true/false。Boolean()
:鬆散與嚴格的平等; ==
===
>評估表達式:===
)和(&&
||
0
,""
,null
。
undefined
NaN
>轉換為布爾值:-0
>使用Boolean()
影響操作結果。 以上是真相和虛假的價值:的詳細內容。更多資訊請關注PHP中文網其他相關文章!