1<2<3=true,3>2>1=false,[] == ![]為true,{} == !{}為false
阿新 • • 發佈:2021-01-20
技術標籤:web前端javascript前端
1<2<3 輸出結果為 true
3>2>1 輸出結果為 false
[] == ![] 輸出結果為 true
{} == !{} 輸出結果為 false
按照計算順序,不難理解
1<2輸出結果為true,然後true<3,輸出結果為true
3>2輸出結果為true,然後true>1,輸出結果為false
![]輸出結果為false,然後[] == false,輸出結果為true
!{}輸出結果為false,然後{} == false,輸出結果為false
拋開前面的擾亂,這個問題的實質是不同資料型別的關係運算
任意值與布林值比較,都會將兩邊的值轉化為Number。
Number(true) 1
Number(false) 0
Number([]) 0
Number({}) NaN
其中NaN是一個特殊的情況,規定NaN不和任何數值相等,包括它自身。
由此延伸到幾個知識點,推薦幾篇文章。