==转换
转换规则:
①、如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;
②、如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值
③、如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较
左边不是原始值类型
所以用valueof转换
console.log([].valueOf());//结果为数组[]
左边又不是原始值类型
再用toString()转换
console.log([].toString());//结果为空字符串“”
对比左右同类型转换
number("")为0
number(false)为0
结果
总结 : []==false -> “” ==false -> 0 ==0
number("")==number(false)为true
===不转换仅是比较
所以[]===false?true:false为false