一、等于操作符
等于操作符(==)在比较中会先进行类型转换(隐式转换),再确定操作数是否相等
规则如下
1、如果任一操作数是布尔值,则将其转换为数值再比较是否相等
true == 1 //false
2、如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等
"1" == 1 //false
3、null和undefined
相等
因为null二进制全部为0,undefined二进制前3为000
4、如果有任一操作数是 NaN
,则相等操作符返回 false
NaN == NaN //false
5、如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true
var a = {}
var b = {}
var c = a;
console.log(a==b)
console.log(a===b)
console.log(a==c)
console.log(a===c)
false
false
true
true
二、全等操作符
全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true
。即类型相同,值也需相同
"1" === 1
false //不相等,因为数据类型不同
1===1
true //相等,因为数据类型相同值也相同
undefined 和 null 与自身严格相等
null === null
true
undefined===undefined
true
三、案例