Почему разный результат {}+[] и []+{}?

{} + [] = 0
[] + {} = "[object Object]"
В чем секрет?
  • Вопрос задан
  • 328 просмотров
Пригласить эксперта
Ответы на вопрос 2
riot26
@riot26
<:З )~~
Если нет проблем с инглишем: 2ality.com/2012/01/object-plus-object.html
Ответ написан
Комментировать
my-nickname
@my-nickname Автор вопроса
Подвох здесь в том, что если фигурные скобки {...} идут не в выражении, а в основном потоке кода, то JavaScript считает, что это не объект, а «блок кода» (как if, for, но без оператора, просто группировка команд вместе, используется редко).
{} + [] // = + [] - что преобрузуется в "0"
[] + {} - будет "[object Object]"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы