直观理解
偏向于转换成number
两等号的类型转换规则
-
布尔值转换:当布尔值参与比较时,
true会被转换为1,而false会被转换为0。 -
字符串和数字:如果一个操作数是字符串且另一个是数字,则首先将字符串转换为数字,然后进行比较。
-
对象与基础数据类型:如果一个操作数是对象,另一个是基础数据类型(如数字、字符串或布尔值),则对象会通过其
valueOf()或toString()方法尝试转化为基础数据类型,再进行比较。 -
NaN 比较:任何与 NaN 进行的比较,包括 NaN 自身,都返回 false。NaN 与任何值都不相等。
-
特殊情况:
- 空字符串 (
"") 与 0 比较时,空字符串会被转换为 0。 - 如果两个操作数都是对象,那么只在它们引用同一对象时才返回 true。
- 空字符串 (
示例
[]==![]结果为true- 先做右边运算, 结果式false
- false转为0
- 左边
[]调用toString()转为空字符串'', 空字符串转为0