Сравнение объектов

При создании объекта в переменной сохраняется ссылка на объект в памяти, а не сам объект. Поэтому сравнение двух пустых объектов всегда возвращает false:

console.log( {} == {} );  // false
console.log( {} === {} ); // false

Сравнение объектов вернет true только в том случае, если две переменные ссылаются на один и тот же объект:

let obj1 = { a: 10 }, obj2 = { a: 10 };
console.log( obj1 == obj2 );  // false
console.log( obj1 == obj2 );  // false
let obj3 = obj1;
console.log( obj1 == obj3 );  // true
console.log( obj1 == obj3 );  // true

Выполнить сравнение объектов позволяет также статический метод is(<Значение 1>, <Значение 2>) из класса Object. Метод возвращает значение true, если переменные содержат ссылку на один и тот же объект, и false — в противном случае:

let obj1 = { a: 10 }, obj2 = { a: 10 }, obj3 = obj1;
console.log( Object.is(obj1, obj2) );  // false
console.log( Object.is(obj1, obj3) );  // true

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов