![] == [] //true !{} =={}//false

==运算符如果有对象,调用对象的valueOf方法,如果返回的还是对象就调用toString方法再不行就报错了。
来看题目:
左边都是对象取非都返回false再被转换为0
再看右边 两个对象的valueOf都是Object.prototype.valueOf() 返回自身 还是无法比较
再调用toString:
前者返回空字符串‘’再被转换成数字0 所以前者为true
后者返回‘[object Object]’这样一个字符串 转化为数字是 NaN 所以后者为false

补充: [] == [] ,{} == {} 均为false 用==比较两个对象时只有是同一个对象为true

猜你喜欢

转载自blog.csdn.net/qaqLjj/article/details/85218519