Вдохновленный этим видео, я тестировал далее {}+[].
Тест 1:
typeof {}+[] //"object"
Хорошо, поэтому {}+[] является object.
Тест 2:
var crazy = {}+[];
typeof crazy //"string"
Что? Разве {}+[] не был object? Почему теперь string?
Тест 3:
console.log({}+[])
Что я получил:

Итак, это number!... Нет?
Итак что на самом деле является типом {}+[]??
ОБНОВЛЕНО
Для людей, которые говорят, что {}+[] - пустая строка:
{}+[] === "" //false
({}+[]) === "" //false
({};+[]) === "" //SyntaxError
({}+[]).length //15
JavaScript так трудно понять...