== 和 === 有什么区别
==
- 首先会判断两者类型是否相同。相同的话就直接进行比较
- 如果对比双方的类型不一样的话,就会进行类型转换
- null 与 undefined : true
- string 与 number : string->number
- 其中一方为 boolean:boolean -> number
- object 与 string、number、symbol : object -> 原始值类型
示例
js
[] == ![]
[] == !true
[] == false
[] == 0
'' == 0
0 == 0 // true
[] == ![]
[] == !true
[] == false
[] == 0
'' == 0
0 == 0 // true
===
判断两者类型和值是否相同
示例
js
true==='true' // false 类型不同
true == 'true'
1 == 'true'
1 == NaN // false
true==='true' // false 类型不同
true == 'true'
1 == 'true'
1 == NaN // false
更多参考