2012-01-27 48 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,直到他們解決的事情)