([] + {}).length的结果是多少
最近加一个技术学习群,群的问题就是这个,很有意思。
我当然直接在控制台里去打印看下结果了
在sf里有人给了解释:
([]).length --> 空数组的length是0
({}).length --> {}是一个空对象,这个对象是没有length 方法的所以是undefined
([] + {}).length --> 实际这两个是不能用操作符"+"的,这个表达式实际是分别调用了[]和{}的toString()方法。[]返回空字符串"",而{}返回"[object Object]",这两个字符串拼在一起刚好是15个字符的一个字符串。
可以这样验证:
([]).toString() // ""
({}).toString() // "[object Object]"
([]+{}) // "[object Object]"
"[object Object]"转换成了字符串长度是15.