En javaScript, tal situación sucederá, quiero saber por qué.
1 == {} //false {} == 1 //throw a Error
Es solo una limitación sintáctica. ({}) == 1 funciona bien.
({}) == 1