Сравнение объектов в JavaScript не так просто, как сравнение примитивных типов данных. В статье рассматриваются пять способов глубокого сравнения объектов в JS. В JavaScript существует 7 примитивных типов данных. Мы можем сравнивать значения любого из этих типов с помощью оператора равенства. Однако сравнение не примитивных типов, таких как объекты, сопряжено с определёнными трудностями, поскольку обычные операторы равенства не сравнивают значения объектов, как можно было бы ожидать. Читать статью полностью
Глубокое клонирование объектов js. Почему не стоит использовать JSON.parse
Наверняка, многие из вас сталкивались с проблемой клонирования объектов. И скорей всего сталкивались с проблемой, когда спред ({ ...foo }) не работал на вложенные объекты (массивы). Хотя в интернете написано, что работает. Для тех, кто не знает расскажу. Есть два типа клонирования - поверхностное и глубокое. Поверхностное, если простым языком, замена ссылки вашей переменной на новую. Например: const foo = { a: 1, b: 2, c: { x: 2 } }; const oldFoo = foo; const newFoo = { ...foo }; oldFoo.a = 2; newFoo...