어제 삼일절엔 개인공부를 하면서 오늘 있을 원시 자료형과 참조 자료형에 대해 예습을 했다.
오늘 수업은 혼자 하는 시간으로만 되어있어 더 집중해서 공부해야겟다.
원시 자료형은 고정된 저장 공간을 차지하는 데이터를 원시 타입 데이터 라고한다.
원시 타입 데이터는 객체가 아니면서 method를 가지지 않은 5가지 타입인
string
,number
,boolean
,undifined
,null
이 있다.
원시 자료형은 모두 하나의 데이터만을 담고 있다.
- 변수에 할당하면 메모리 공간에 값 자체가 저장된다.
- 원시 값을 갖는 변수를 다른 변수에 할당하면 원시 값 자체가 복사되어 전달된다.
- 원시 자료형은 변경 불가능한 값이다. 한번 생성된 원시 자료형은 읽기 전용이다.
- 원시 자료형을 할당한 변수를 다른 변수에 할당하면 값 자체의 복사가 일어난다.
( 둘중 하나의 값을 변경해도 다른 하나에는 영향을 미치지 않는다는 것을 의미한다 )
//ex)
let a = 1;
b=a; //데이터를 복사할 경우
b=3;
a; //1, 기존의 데이터에 영향이 가지 않는다.
앞서 다룬 원시 자료형이 아닌 모든 것들을 참조 자료형이라 한다.
대표적으로 배열
, 객체
, 함수
가 있다.
- 변수에 할당하면 메모리 공간에 주솟값이 저장된다.
- 참조 값을 갖는 변수를 다른 변수에 할당하면 주솟값이 복사되어 전달된다.
- 참조 자료형은 변경이 가능한 값이다.
- 값의 크기가 수시로 변하는 것을 처리하기 위해 참조 자료형은
heap
이라는 별도의 메모리 저장 공간을 사용한다.- 참조 자료형의
===(strict equality)
는 주소값이 같은지를 확인한다.
//ex)
let e = [10, 20];
let f = e;
f[0] = 50;
e; //[50, 20]
원시 자료형은 하나의 변수에 하나의 데이터만 담을 수 있지만
참조 자료형은 여러 데이터를 담을 수 있다.
그래서 원시 자료형과 다르게 참조 자료형은
heap
안에 저장된 데이터를 원하는 대로 데이터 사이즈를 조정할 수 있다.