相等运算符==
如果操作数据有相同类型,判断值是否相等,如果相等返回true,否则返回false。
如果操作数不同,按照这样的情况判断。
1、null和undefined相等;
2、其中一个是数字另一个是字符串,将字符串转换为数字再作比较;
number('123')=123;
3、其中一个是true,先转换成1(false转换为0)在做比较;
print(1==true),返回true
类型不等,true会先转换成数值 1,比较 1 == 1, 相等。
4、如果一个是对象,另一个是数字或字符串,则将对象转换为原始值;
valueof()或tostring()
5、其他情况返回false。
等同运算符===
如果操作数的类型不同,则不进行值的判断,直接返回false。
如果操作数据有相同类型,分下列情况来判断:
1、都是数字的情况下,如果值相同,则两者相同。
2、都是字符串的情况下,如果串值不同则不相等。
3、都是布尔值,均为true或false,则相等。
4、如果两个操作数引用同一个对象,则两者完全相同,否则不相等。
5、如果两个操作数均为null或undefined,则相同,否则不等同。
print(1===true)返回false
print(null===undefined)返回false
总结:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。