shallowEqual сравнивает собственные свойства верхнего уровня; одинаковая ссылка во вложенном поле считается равной без проверки содержимого.
Что такое shallowEqual и какой результат оно даст при сравнении объектов, в том числе если вложенное свойство ссылается на один и тот же объект?
shallowEqual сравнивает собственные свойства верхнего уровня; одинаковая ссылка во вложенном поле считается равной без проверки содержимого.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
shallowEqual сравнивает собственные свойства верхнего уровня; одинаковая ссылка во вложенном поле считается равной без проверки содержимого.
Для типичной реализации shallowEqual({ a: shared }, { a: shared }) вернёт true, а два разных объекта во вложенном a дадут false, даже если поля совпадают. Конкретная обработка NaN, -0 и ключей зависит от реализации; в React-подобных вариантах используют Object.is. Поверхностное сравнение не обнаружит мутацию общего вложенного объекта.