object 2

JEON.HYEONG.JUN·2022년 4월 3일
0

객체 정리

목록 보기
3/4

객체는 키와 값의 쌍으로 구성되어 있다고 했다.

키에 대해서 알아보자

키에는 변수선언과 달리 스페이스,한글,특수문자 모두 들어갈 수 있다.

color와 같이 특수문자가 없으면 따옴표 생략이 가능하다.


📌 프로퍼티 접근

dot(.)접근법과 []대괄호 접근법이 있는데 전에 정리해둔 블로그를 참고하자.

핵심은 dot점근법이 편리하지만 괄호접근법이 변수에 접근하거나 스페이스가 포함된 키, 숫자로 된 키등에 접근할 수 있다.


📌 프로퍼티 할당

접근하고자 하는 키값이 기존키이면 재할당되어 값이 교체되고, 없던 키면 새로운 프로퍼티가 추가.

그리고 알아야 할 점!

const는 재할당이 불가능한 선언방식이다.

const로 선언된 변수는 값을 수정할 수 없다.

하지만 객체를 할당하면, 프로퍼티를 추가하거나 수정이 가능하다.

객체 재할당은 역시 불가능!


📌 중첩된 객체

실무에서 객체는 거의 중첩되어 있다.

프로퍼티값이 객체일수도, 배열일수도 있다.

목록부터 찾는다고 생각하고 천천히 접근해보자.


📌객체는 reference로 저장된다.

객체를 변수에 저장하면 객체 자체가 저장되는 것이 아니라 reference가 저장된다.

하지만, 텍스트는 변수에 저장하면 텍스트 자체가 저장됩니다. 그래서 서로 같은 텍스트를 비교연산 하면 서로 값이 같으므로 true 이다.


그러나 객체는 생긴 것이 똑같은데도 false이다.

그 이유는 객체는 변수에 저장할 때, 객체 자체를 그대로 저장하는 것이 아니고, 객체가 담긴 어느 메모리의 메모리 주소인 reference 를 저장하기 때문이다.

하지만 객체를 불러올 때는 메모리 주소가 아닌, 해당 메모리에 저장된 데이터를 반환한다.

그래서 보기에는 같지만 두 객체가 갖고 있는 값이 다른것이다.

그러나 객체 내부의 value값이 텍스트이면 텍스트를 비교할 수 있다.


앞에서 객체를 const로 선언한 변수에 할당했을 때 새로운 객체를 재할당하는 것은 불가능하지만,

프로퍼티에 접근해서 값은 바꿀 수 있다고 하였다.

그것은 바로 메모리주소인 reference가 바뀌는 게 아니라

이미 저장된 reference는 그대로 있고, 객체 내부의 프로퍼티 값만 수정되기 때문에 가능한 것이다.

새로운 객체를 재할당하는 것은 새로운 reference를 할당하는 것이기 때문에 불가능한 것이다.

profile
💻😀👍🎁👏😁

0개의 댓글