首先判断两者的数据类型是否相同,如果不同会进行强制类型转换,相同的话就比较大小。
- 字符串和数字之间的相等比较,将字符串转换为数字之后再进行比较大小;
console.log(1 == "1");//--->1==1--->true
- 其他类型和布尔类型之间的相等比较,先将布尔值转换为数字后,再应用其他规则进行比较;
console.log(true == "1");//--->1=="1"--->1==1--->true
null和undefined之间的相等比较
,结果为真,其他值和它们进行比较都返回假值
console.log(null == undefined);//true
- 对象和非对象之间的相等比较,会将对象先转为基本数据类型再进行判断;
console.log("1" == {});//--->"1"=="[object object]"--->false
- 如果两个操作值都是对象,则比较它们是不是指向同一个对象,如果两个操作数都
指向同一个对象
,则相等操作符返回true,否则返回false
const a={};
const b=a;
const c={};
console.log(a == b);//ture(a和b指向的是同一个对象,使用的是同一个内存地址)
console.log(a == c);//false