2012-01-27 66 views
7

我提前道歉,因为这是一个愚蠢的问题,但我只需要知道为什么发生这种情况,我没有找到答案。所以,你去了,堆栈溢出!添加空对象和数组

在这种video 2:00左右标记(我不能建议不够)的家伙表明在Javascript:

[] + [] = empty string 
[] + {} = object 
{} + [] = 0 
{} + {} = NaN 

任何人都知道这是为什么?

+7

JavaScript是既有趣又可怕...... +1 – 2012-01-27 19:56:16

+1

JS有隐式转换种种基于运营商。 JavaScript大师来解释每个5 ... 4 ... 3 .. – 2012-01-27 19:58:12

+1

'[] + {}'是一个对象的字符串表示形式,通常类似于“[object Object]”http:// jsconsole的.com /?的typeof%20(%5B%5D%20%2B%20%7B%7D) – dtanders 2012-01-27 20:13:47

回答

6

This blog post来自Adam Iley涵盖了大多数这些边缘案例背后的推理。

(注:该网站是有一些数据库问题,您可以使用google cache,直到他们解决的事情)