++[[]][+[]]+[+[]] = 10

javascriptで ++[][+]+[+] = 10 になるのを説明できる人いる?」
って質問がStackOverFlowにUPされてたけど、
http://stackoverflow.com/questions/7202157/can-you-explain-why-10

その回答611が完璧!
これを理解するのに一番の肝は+で、

+を実行すると
1,
のtoStringが実行され、+""と評価される。

2,さらにNumber型への変換がされ、0と評価される。

++[][+]+[+] を書き直すと

++[][0]
+
[0]

と評価され

++[][0]
+
[0]

その後

++([][0])
+
[0]

更に

([] + 1)
+
[0]

最後に

1
+
"0"
== "10"

で結果 10になる!