一、强制类型转换
二、相等 不相等 全等 不全等
JavaScript在比较两个变量是否相等时有两组操作符:
1、== != ---- 先自动强制类型转换操作数,再比较
1.布尔类型与其他类型比较时会先自动转换为数值(true-1,false-0),字符串与数值比较时会先转换为数值
true==1 // true true==2 // false true=='true' // false '123'==123 // true
2.对象和其他类型比较时,对象调用valueOf()方法,再遵循以上规则
{}=='[object Object]' // true
3.对象比较时,则比较它们是不是同一个对象
{}=={} // false 创建了两个不同的实例对象
4.null和undefined是相等的,null,undefined和其他类型比较前不会将null和undefined自动强制转换成任何其他值
null==0 // false undefined==0 // false
null=='' // false
null==undefined // true
null == ‘null’// false undefined==’undefined’ //false
5.NaN不等于任何值包括NaN
NaN==NaN // false NaN=='NaN' // false
2、全等 不全等
除了比较之前不转换操作数,其他的和相等不相等一样
'123'==123 // true
'123'===123 // false
注意:null===undefined // false