([] + {}).length的结果是多少

最近加一个技术学习群,群的问题就是这个,很有意思。

我当然直接在控制台里去打印看下结果了

([] + {}).length的结果是多少_第1张图片

在sf里有人给了解释:

([]).length --> 空数组的length是0

({}).length --> {}是一个空对象,这个对象是没有length 方法的所以是undefined

([] + {}).length --> 实际这两个是不能用操作符"+"的,这个表达式实际是分别调用了[]和{}的toString()方法。[]返回空字符串"",而{}返回"[object Object]",这两个字符串拼在一起刚好是15个字符的一个字符串。

可以这样验证:
([]).toString() // ""
({}).toString() // "[object Object]"
([]+{}) // "[object Object]"

 

"[object Object]"转换成了字符串长度是15.

转载于:https://www.cnblogs.com/zhangmingzhao/p/7887895.html

你可能感兴趣的:(([] + {}).length的结果是多少)