원시 자료형과 참조 자료형

신보연·2023년 3월 2일

원시 자료형과 참조 자료형

JavaScript에서 자료형(type)은 값(value)의 종류. 각각의 자료형은 고유한 속성과 메서드를 가지고 있다. 자료형은 크게 두 가지로 구분. 원시 자료형(primitive type),참조 자료형(reference type)

원시 자료형:

자바스크립트에서 number,string,boolean과 같은 고정된 저장 공간을 차지하는 데이터를 모두 원시 타입 데이터(Primitive type)로 구분.

원시 자료형은 객체가 아니면서 메소드를 가지지 않는 6가지 타입.

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

// 원시 자료형(primitive type): number, string, boolean, undefined, null
42, 'string', true, undefined, null

이 중, 자주 사용되는 4(+1)가지 원시 자료형은
string , number , boolean , undefined , (null)

원시 자료형은 단 하나의 데이터를 담고 있다.
하나의 정보만 담고있기 때문에, 고정된 저장 공간을 사용하는 것이 합당하다. 원시 자료형 타입의 값 자체는 변경이 불가능하지만, 변수에 다른 데이터를 할당할 수 있다.


참조 자료형:

원시 자료형이 아닌 모든 것은 참조 자료형,
Object로 구분되는 모든 자료형에 해당.
대표적: 배열, 객체, 함수

참조 자료형에는 하나의 데이터가 아닌 여러 데이터가 담기게 된다.원시 자료형이 보관되는 데이터 보관함이 아닌 특별한 데이터 보관함(heap)에 저장.

변수에 저장되는 값은 이 데이터가 위치한 곳을 가리키는 주소가 저장.

특별한 데이터 보관함은 데이터의 크기에 따라 사이즈를 늘렸다 줄였다 할 수 있다. (동적으로 변함)

실질적인 데이터는 특별한 보관함에 저장되고, 변수에 저장되는 값은 그 보관함함에 데이터가 위치한 주소이기 때문에, 이를 참조한다 하여 참조 자료형이라 부른다.

원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference) 가 담긴다.

값을 찾을 땐 저장소에 저장된 주소를 보고, heap에서 그 주소에 맞는 값을 찾아 반환.

// 참조 자료형(reference type)
[0, 1, 2] // 배열
{name: 'kimcoding', age: 45} // 객체
function sum (x, y) { return x + y } // 함수

원시 자료형과 참조 자료형의 차이

원시 자료형은 변수에 값이 할당될 때, 값 자체가 할당.

참조 자료형은 변수에 값이 할당될 때, 보관함의 주소(reference)가 할당.

변수엔 원시 값 혹은 주소만 지정할 수 있고, 주소는 크기가 변하는 특별한 데이터 저장소인 heap을 참조하게 되는 것.

0개의 댓글