Возможный дубликат:
Какое объяснение этих причудливых действий JavaScript, упомянутых в разговоре "Wat" для CodeMash 2012?
Я знаю, что когда [] принуждается к строке, он возвращает пустую строку (""), а когда {} принуждается к строке, она возвращает "[object Object]".
Когда я запускаю [] + {} в консоли браузера Javascript, он возвращается, как я ожидал:
>> [] + {}
"[object Object]"
Но когда я запускаю {} + [], он возвращает совершенно неожиданное значение:
>> {} + []
0
Что может заставить его вернуть 0?