1.“==”
等于。
若类型相同,则同===;
若类型不同,则尝试类型转换和比较:
null == undefined
number == string //string转为number后比较
boolean == ? //不管?是什么,boolean转为number后进行比较,如1 == true为true
object == number | string //一边是对象,一边是number或string:尝试对象转为基本类型。
其他:false
2.“===”
严格等于。需要判断类型
或类型不同,则返回false
NaN ≠ NaN
new Object ≠ new Object
因为JS中对象的比较是用引用比较,而不是用值比较
"1.23" == 1.23 //这里会将字符串转换为数字后进行比较
0 == false
null == undefined
new Object() = new Object();
[1,2] == [1,2]