Warum unterscheidet sich {} + [] von ({} + [])? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Was ist die Erklärung für diese bizarren JavaScript-Verhaltensweisen, die im 'Wat'-Vortrag für CodeMash 2012 erwähnt wurden? 5 Antworten

Ich war kürzlich alarmiert, als ich Folgendes entdeckte:

> {}+[]
0

> ({}+[])
"[object Object]"

> {}+[]+1
1

> ({}+[])+1
'[object Object]1'

> {}+[] == ({}+[])
false

Warum ändert das Umschließen von Elementen in Klammern ihren Typ?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage