객체가 아니면서 method를 가지지 않는 6가지 타입을 말한다.
string, number, bigint, boolean, undefiend, symbol, (null) 을 말한다.
즉, 변수에 하나의 데이터만 넣을 수 있는 타입을 말한다.
원시자료형을 그림과 같이 표현 하자면 다음과 같다. 출처 ---> 코드스테이츠
let A = 123;
let b = 123456789;
이렇게 변수에 크기와 상관 없이 하나의 데이터만 담을 수 있다.
원시 자료형은 값 자체에 대한 변경이 불가능하지만, 변수에 다른 데이터를 할당 할 수는 있습니다.
let result = "hello world!"
result = "hello coding!"
//result 라는 변수에 재할당 하여 변수에 다른 데이터를 변경할 수 있다.
const num1 = 123;
num1 = 123456789; // 에러 발생
// 예외로 const키워드로 변수를 선언을 하게 되면, 재할당은 불가하다.
원시 자료형이 아닌 모든것을 참조 자료형이라 한다.
배열, 객체, 함수가 대표적이다.
원시 자료형과는 다르게 여러 데이터를 담을 수 있다.
참조 자료형을 그림과 같이 표현 하자면 다음과 같다. 출처 ---> 코드스테이츠
참조자료형은 "데이터의 크기가 동적으로 변하는" 특별한 데이터 보관함이 필요, 그리고 이 데이터가 위치한 곳(메모리 상 주소)을 가리키는 주소가 변수에 저장 된다. 즉, 변수에는 특별한 데이터 보관함을 찾아갈 수 있는 주소가 담겨있는 것이고 이 주소를 따라가다보면 특별한 데이터 보관함을 찾을 수 있는 것인데 이 보관함은 자기마음대로 사이즈를 늘렸다 줄였다를 할 수 있다.
그리고 이 특별한 데이터 보관함을 heap이라고 부른다.
그럼 왜 참조자료형이라고 부를까? 바로 데이터 값을 읽는게 아닌 주소를 참조하여 실제 변수가 있는 장소에 도착하고 나서야 그 데이터보관함 안에 있는 정보를 읽을 수 있기 때문이다.