一道关于js类型转换的面试题？
if([] == false){console.log('a')}
if({} == false){console.log('b')}
if([] == {}){console.log('c')}
if([]){console.log('d')}
这几道题的隐式转换的方式大神帮忙解答下吧
对象和非对象之间的相等比较
ES5 规范 11.9.3.8-9 做如下规定：
`ToPrimitive`就是尝试返回它的原始值，也就是`string`或者`number`。
因此：
1. [] == false，`{[]}`会先通过`{valueOf}`，得到`{[]}`，不是原始值，再通过`{toString}`，得到`{""}`
2. ({}) == false，同上面步骤，最终的到`{"[object Object]"}`
3. 同上，`{''!="[object Object]"}`
4. 没有`{==}`，[]默认为true