Вдохновленный этим видео, я тестировал далее {}+[]
.
Тест 1:
typeof {}+[] //"object"
Хорошо, поэтому {}+[]
является object
.
Тест 2:
var crazy = {}+[];
typeof crazy //"string"
Что? Разве {}+[]
не был object
? Почему теперь string
?
Тест 3:
console.log({}+[])
Что я получил:
Итак, это number
!... Нет?
Итак что на самом деле является типом {}+[]
??
ОБНОВЛЕНО
Для людей, которые говорят, что {}+[]
- пустая строка:
{}+[] === "" //false
({}+[]) === "" //false
({};+[]) === "" //SyntaxError
({}+[]).length //15
JavaScript так трудно понять...