I was reading the answer to this question (about the "wat" video) and it said:
{}+[]
This is interpreted as an empty block of code, unary plus and empty array. First part does nothing, array is converted to a comma-separated string of it's elements (empty string for empty array), then to a number (empty string is converted to 0), hence 0.
I am currently learning JS from "The Definitive Guide" so I try to really understand things like that.
My question is, when does JS decide to interpret {} as an empty block of code, instead of an empty object?
Also, there are some inconsistencies between Node.js and Firebug which I would like to understand.
Firebug:
![Firebug console output for <code>{}[]</code> and <code>({}[])</code>](../../images/3808496750.webp)
Node.js:
![Node.js output for <code>{}[]</code> and <code>({}[])</code>](../../images/3827895433.webp)