Сообщение от trikadin
			 
		
	 | 
	
		Наткнулся на интересную штуку. 
 
{} + [] // 0
 
Кто без гугления сможет вспомнить, почему так?)
	 | 
	
Спецификация же за гугление не считается?)
{} здесь - не литерал объекта, а пустой блок кода. Выходит так:
{}; +[];
Унарный оператор + приводит к числу аналогично Number, массивы (упрощенно) приводятся таким образом:
Number(array.toString());
Пустой массив тогда сперва приведется к пустой строке, затем пустая строка приведется к нулю. Итог выражения - ноль.
Вот так будет работать как ожидается:
({}) + []; //"[object Object]" + "" == "[object Object]"