В одном комментарии к моей
статье была ссылка от
MrSLonoed на видео где парень рассказывал и показывал примеры приведения типов. Среди прочих примеров был и такой
{}+[] //0
Пользователь
HDg высказал мысль, что {} в данном случае — это не объект, а блок кода.
Как раз в этот же день у моего коллеги возник вопрос связанный с той же ситуацией что и в примере выше. Вопрос звучал так: «Почему при написании в консоли браузера следующей конструкции {a:'a',b:'b'} выдается SyntaxError: Unexpected token:. Это же объект! ». Я сказал, что это из-за того что при отсутствии иных операторов фигурные скобочки воспринимаются как блок кода, а не объявление объект, то есть все равно что в консоли просто написать a:'a',b:'b'.
Соответственно теперь вопрос возник у меня:
Если писать просто {a:'a'} — это тоже не объявление объекта, но команда a:'a' — отработает и вернет строку «а». Что это — a:'a' ??
Уважаемые Хабровцы, объясните что дает данная конструкция? Заранее всем спасибо!