徹底搞懂JS中的的隱式類型轉換

總結自文章:https://juejin.im/post/5d43bcb36fb9a06b2f5f920f

 

如果 == 兩側是不同類型的值,則會引發隱式類型轉換。那麼轉換的規則是什麼?

記住下面幾條轉換規則,媽媽再也不擔心我懵逼

 

規則一:若字符串和數字進行比較,那麼字符串轉數字。

'0' == 0 // true '0'=> 0

規則二:若複雜數據類型和簡單數據類型比較,那麼複雜數據類型需要先轉成簡單數據類型,再進行比較。

——首先嚐試調用valueOf方法轉成簡單類型,若不能,轉而調用toString方法轉成字符串(簡單類型),再用規則一比較。

[] == 0    // true, [] => '' => 0     
[] == '0' // false, [] => ''

規則三:x 是 undefined || null 且 y 是undefined || null,直接返回true。另外有NaN直接返回false

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章