๐ย Reference
๐ย Chapter
์์ 1: ์์๊ฐ(Primitive)์์๋ ===
์ ๊ฐ์
1 === 1; // true
'hi' === 'hi'; // true
์์ 2: ๊ฐ์ฒด ์์ ๋น๊ต
const obj1 = { a: 1, b: 2 };
const obj2 = { a: 1, b: 2 };
console.log(obj1 === obj2); // false (๋ค๋ฅธ ์ฐธ์กฐ)
===
์ ์ฐธ์กฐ(Reference) ๋ฅผ ๋น๊ตํ๊ธฐ ๋๋ฌธ์, ๊ฐ์ด ๊ฐ์๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๋ฉด ์์ ๋น๊ต์์๋ ๋ค๋ฅด๋ค๊ณ ํ๋จํ๋ค.์์ 3: shallow equality ์ง์ ๊ตฌํ
function shallowEqual(objA, objB) {
if (objA === objB) return true;
const keysA = Object.keys(objA);
const keysB = Object.keys(objB);
if (keysA.length !== keysB.length) return false;
for (const key of keysA) {
if (objA[key] !== objB[key]) return false;
}
return true;
}
const a = { x: 1, y: 2 };
const b = { x: 1, y: 2 };
const c = { x: 1, y: { z: 3 } };
const d = { x: 1, y: { z: 3 } };
console.log(shallowEqual(a, b)); // true โ
console.log(shallowEqual(c, d)); // false โ (y๋ ๊ฐ์ฒด, ์ฐธ์กฐ ๋ค๋ฆ)