javascript 기초

헨도·2022년 11월 14일
0

javascript

목록 보기
18/19

객체

객체 간의 비교

객체를 다룰 때 가장 많이 실수하는 상황이 객체 간의 비교 연산을 수행할 때이다.

{} == {}
>>> false

객체끼리는 서로 비교하면 false 가 나온다.
객체가 아닌 숫자, 문자열, Boolean, null, Undefined 는 모두 true를 반환한다.

객체는 모양이 같아도 생성할 때마다 새로운 객체가 생성된다.
따라서 같은 객체인지 비교하고 싶다면 기존 객체를 변수에 저장해두어야 한다.

const a = { name : '헨도'};
const arr = [1, 2, a];

console.log(a === arr[2]);
>>> true

참조

객체의 참조

객체 사용 시 반드시 알아야 하는 개념이 있는데, 바로 참조(refrence)이다.

const a = {name : 'Hendo'};
const b = a;
a.name = 'hero';
console.log(a.name);
>>> hero

변수 b를 a에 대입한 상황
a의 변수 name을 수정했는데 b도 같이 수정되었다.
객체를 저장한 변수를 다른 변수에 저장하면 두 변수 모두 같은 객체를 저장하는 셈이 된다.

이러한 상황을 변수 a와 b가 같은 객체를 참조하고 있다고 표현한다.
또는 a와 b 그리고 객체 간에 참조 관계가 있다고 표현한다.

객체가 아닌 값의 참조

다만 객체가 아닌 값은 참조가 되지 않는다.
메모리 내 따로 저장되기 때문에 참조가 되지 않는다.

let a = 'zero'
let b = a
a = 'one'

console.log(b)
>>> zero

TEST

다음과 같은 객체가 있을 때, '조' 값에 접근하는 방법은?

const animal = {
	name : {
    	first : '타',
        last : '조',
    },
    gender = 'M';
}

'조'에 접근하는 방법은 2가지이다.
1. animal.name.last
2. animal['name']['last']

profile
Junior Backend Developer

0개의 댓글