Как сравниваются объекты?

Этот вопрос проверяет знание того, как JavaScript сравнивает объекты. Это ключевое понятие, которое нужно понимать при работе с данными.

Короткий ответ

В JavaScript объекты сравниваются по ссылке, а не по значению. Это означает, что два объекта считаются равными (===), только если они ссылаются на один и тот же объект в памяти. Даже если два объекта имеют одинаковые свойства и значения, они не будут равны, если это разные экземпляры.

Длинный ответ

В JavaScript при сравнении объектов используется проверка ссылок на один и тот же объект, а не их содержимого. Это отличается от примитивных типов, которые сравниваются по значению. Когда вы сравниваете два объекта оператором === или ==, JavaScript проверяет, указывают ли они на одно и то же место в памяти. Если да, объекты считаются равными, если нет — они считаются разными, даже если их свойства идентичны.

let obj1 = { name: "John" }; 
let obj2 = { name: "John" }; 
let obj3 = obj1; 
console.log(obj1 === obj2); // false, разные объекты, хоть и с одинаковыми данными 
console.log(obj1 === obj3); // true, оба ссылаются на один объект

Если вам нужно сравнивать объекты по их содержимому, нужно реализовать специальную функцию, которая будет проверять каждое свойство объектов.

 

Пример функции глубокого сравнения:

function deepEqual(obj1, obj2) {  
	return JSON.stringify(obj1) === JSON.stringify(obj2); 
}

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

Подпишись на React Developer в телеграм