Can anyone explain to me how the results of the following was evaluated?
{} + {} // NaN
[] + {} // "[object Object]"
{} + [] // 0
[] + [] // ""
Here is a full explanation of this, check it.
And note {} + {}
is NaN
if you execute it directly in the console because {}
is thought of a block rather than an object.
({}+{})
should be '[object Object][object Object]'
The real result is:
console.log({}+{}) // '[object Object][object Object]'
console.log([]+{}) // '[object Object]'
console.log({}+[]) // '[object Object]'
console.log([]+[]) // ''