Почему так 👇



Как вы знаете, объекты и примитивы в JavaScript сравниваются по-разному.



Примитивы (string, number, boolean, null, undefined, symbol (добавлен в ECMAScript 2015), bigint) сравниваются по значению.

Объекты — по ссылке или адресу в памяти, где хранится переменная.



👉 Поэтому, первый console.log возвращает false, а второй — true. Переменные «a» и «c» ссылаются на один объект, а переменные «a» и «b» — на разные объекты с одинаковыми свойствами и значениями.