Подвох здесь в том, что если фигурные скобки {...} идут не в выражении, а в основном потоке кода, то JavaScript считает, что это не объект, а «блок кода» (как if, for, но без оператора, просто группировка команд вместе, используется редко).
{} + [] // = + []
- что преобрузуется в "0"
[] + {}
- будет "[object Object]"