JavaScript 比较运算符的问题
tyoeof Date undefined == false 10 * '2a' [] == ![] [] == []
结果:
function
false
NaN
true
false
在转数字的过程中。基本数据类型,可以直接理解成使用Number转的.
对象类型,应该理解成 Number(obj.toString())
转换失败,catch住,就是false.
有valueOf的时候,优先使用valueOf
没有valueOf的时候,使用toString
如果等号对一端是 布尔值 或 number类型。就要对等号两边对数值都转换成number。
Number(false) === 0
Number(true) === 1
Number(null) === 0
Number(undefined) === NaN
但是有个例外: null == undefined