== 等于操作符
- 如任一操作数为boolean时,转换为数值再比对
- true转变为1 false转变为0
Javascript
1==true
// output true
2==true
// output false
- 如果一个操作数是字符串,另外一个是数值,字符串的一方会被转成数组再进行比较
javascript
'123'==123
// output true
- 如果一方操作数是对象,另外一方操作数非对象时,会调用对象中的
valueOf
方法进行对比较。
javascript
// foo.valueOf 返回 10,这里使用的是箭头函数
let foo={valueOf:()=>10}
foo == 10
// output true
- 如果有一方操作数是NAN,结果一定是false
javascript
NaN==NaN
// output false
1 == NaN
// output false
- null 和 undefined 是相等的
javascript
null == undefined
// output true
=== 严格等于
与==
不同的是,如果操作数类型不同,==
运算符会在比较之前尝试将它们转换为相同的类型。
javascript
'1'===1
// output false
'1'==='1'
// output true
true===1
// output false