고정된 저장 공간을 차지하는 데이터를 모두 원시 타입(primitive type) 데이터 라고 한다.
원시 타입 데이터
객체가 아니면서 method를 가지지 않는 6가지의 타입
string
,number
,bigint
,boolean
,undefined
,symbol
,(null)
원시 자료형은 모두 하나의 데이터만을 담고 있다.
const num = 123; const arr = [1, 2, 3, 4, 5]; let word = "hello world!"
위 예시를 보면, 데이터의 크기와는 관계 없이 하나의 변수에는 하나의 데이터만을 담을 수 있다.
원시 자료형은 값 자체에 대한 변경이 불가능(immutable)하지만, 변수에 다른 데이터를 할당할 수는 있다.
자바스크립트에서 원시 자료형이 아닌 모든 것들은 참조 자료형이다. 대표적으로 배열과 객체, 함수가 있다.
이러한 자료형을 자바스크립트에서는 참조 자료형(reference data type) 이라고 부른다.
원시 자료형은 하나의 변수에는 하나의 데이터만을 담을 수 있는데, 참조 자료형은 여러 데이터를 담을 수 있다.
참조 자료형의 데이터는 heap이라고 부르는 별도의 데이터 보관함에 저장되고, 변수에는 데이터가 저장된 메모리 상의 주소가 저장된다.
원시 자료형과는 다르게 heap 안에 저장된 데이터는 원하는 대로 데이터 사이즈를 조정할 수 있다.