==
如果被比较的两个数据类型不一致,则会自动进行类型转换后再比较。
判断X == Y
:
-
判断两者类型是否相同。若相同,则比较值是否相等。
-
若类型不相等,先进行类型转换。
-
首先判断是否为
null == undefined
,若是,则返回true
。 -
判断是否为
string === number
,若是,将string
转化为number
后再判断两者值是否相等。'123'
=>123
-
判断是否出现
boolean
,若出现boolean
,将boolean
转化为number
后再进行判断。true
=>1
,false
=>0
-
判断其中一方是否为
object
且另一方为string
、number
或者symbol
,是的话就会把object
转为原始类型再判断。{ name: 'jack' }
=>'[object Object]'
判断流程总结如下图所示:
===
不会进行类型转换,直接判断两者类型、值是否都相同。
建议
尽量使用
===
,不使用==
。
📘📘欢迎在我的博客上访问:
https://lzxjack.top/