彻底搞懂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

 

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