when you do +"1" + 1 it gives 2. Why? because + needs a number, so JS will implicitly cast whatever is there to a number
[]+{}? + needs string or number, so it'll convert the two operands to string representation. [] would become empty string as no elements. {} is stringified version of object