1. 程式人生 > 其它 >1<2<3=true,3>2>1=false,[] == ![]為true,{} == !{}為false

1<2<3=true,3>2>1=false,[] == ![]為true,{} == !{}為false

技術標籤: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不和任何數值相等,包括它自身。
由此延伸到幾個知識點,推薦幾篇文章。

  1. js運算子之關係運算符.
  2. javascript基礎的==和===底層原理解析.