1、所有类型和布尔类型判断相等( == ),布尔类型都会先转为数值类型(0和1);
2、对象和非布尔值的普通类型判断 == 相等,包装对象会被拆封,其他对象使用toString()
、valueOf()
方法转为字符串后再比较;
3、字符串和数字比较会把字符串转换为数字;
4、null == undefined ,null、undefined 和其他所有数据类型都不==
实例:
1、[] == false;
==> [] == 0 // false
⇒ '' == 0 //false
[] == '' //true
[0] == 0 // true
2、new Object() == true
⇒ new Object() == 1 // false
⇒ '[object Object]' == 1 //false
new Object() == '[object Object]' //true