++[[]][+[]]+[+[]] = 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になる!