원시 자료형과 참조 자료형

이성은·2022년 11월 7일
0

원시타입데이터

  • JavaScript에서 원시 타입의 데이터(primitive data types; 원시 자료형)는 객체가 아니면서 method를 가지지 않는 6 가지의 타입을 말한다

  • string, number, bigint, boolean, undefined, symbol, (null)

  • 각변수간에 원시타입을 복사할 경우엔 데이터 값이 복사 돼서 기존의 데이터에 영향 없다

  • 원시 자료형의 보관함인 변수에는 하나의 원시 자료형만 담을수 있다

참조타입 데이터

  • JavaScript에서 원시 자료형이 아닌 모든 것은 참조 자료형이고, 배열,객체,함수가 대표적이다
  • 참조타입은 주소를 복사하기 때문에 복사한 데이터에서 원소를 변경하면 주소 안에 데이터가 변경이 가능하다

즉 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다.
그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용할 수 있습니다.

  • 종합퀴즈

풀이 : 값의 크기가 수시로 변하는 것을 처리하기 위해서 참조 자료형은 heap이라는 별도의 메모리 저장 공간을 사용한다.
참조 자료형의 ===(strict equality)는 주소값이 같은지를 확인한다. 그렇기 때문에 두 참조 자료형의 주소값은 다르다고 판단을 내릴 수 있다.

console.log([1,2,3] === [1,2,3]); //false

컴퓨터가 위 코드를 읽으면서, 이미 두 개의 heap 저장 공간의 주소를 확보했다. 다만 우리는 눈으로 확인하지 못할 뿐이다. 배열([])과 객체({}) 등 참조 자료형을 읽을 때, 미리 주소값과 메모리 값을 잡아둔다고 생각하면 편하다. 그러므로 [] === [] 도 true가 나오지 않는 것이다.

출처 [codestates]

profile
함께 일하는 프론트엔드 개발자 이성은입니다🐥

0개의 댓글