perador @Plus con objetos javascript

"" + {} evalúa a"[object Object]"

0 + {} evalúa a"0[object Object]"

Sin embargo,+ {} por sí solo se evalúa comoNaN, por lo que se está convirtiendo en un número. ¿Cómo es que+ {} se convierte en una cadena en la expresión0 + {}?