I don't want to ask why [] + [] gives you empty string, or so on, as we can't change it. And the reason is just a design of the language.
My question is about following inconsistency, noticed in Chrome and FF Firebug JS consoles:
{} + []; // outputs 0
console.log({} + []); // outputs [object Object]
var c = {} + [];
console.log(c); // outputs [object Object]
I understand that expression returns a value, and this is what you see in console output. But why this return value changes, when assigned to a variable or output using console.log()?
Does it mean that mentioned consoles are buggy?
Is there any better explanation then stating that this is the way it's done?