Loose Equal
预计 3 分钟
==
在 JavaScript
中与其他许多语言有着不同的行为,在 JavaScript
中,==
在比较双方的类型不同的时候进行强制类型转换,正因为这点,==
运算符遭到了很多人的诟病,但是,==
也有着自己的优势,比如适当的时候可以让代码更加简洁,==
的转换规则并不难,本文总结了其转换规则供大家参考。
特殊情况
NaN
不等于 NaN
+0
等于 -0
字符串与数字的比较
将字符串转换为数字然后进行比较
其他类型与布尔类型之间的比较
将布尔类型转换为数字,然后再进行比较
false
转为 0
true
转换为 1
null 和 undefined 之间的比较
null == undefined
为 true
对象和非对象之间的比较
对对象做 ToPrimitive
操作,然后再比较
实例运用
![]
将 []
转换为布尔值,值为 false
,所以上式变为
[]
是对象,对其做 ToPrimitive
操作,转换为 ''
,所以上式变为
false
转换为数字 0
,上式变为
''
转换为数字,转换为0
,所以上式变为
结果为 true
#前端
#JavaScript