[JS] 원시 자료형과 참조 자료형

김동현·2021년 1월 15일
0

JavaScript

목록 보기
8/10

원시 자료형(Primitive)

String, Number, Boolean, Undefined, Symbol, Bigint, Null

데이터 보관함 한 칸에 하나의 데이터만 넣을 수 있는 원시적인 방식
let 과 var 는 재할당이 가능하지만 const는 재할당이 불가
변수의 크기는 고정되어 있음
원시 자료형은 값 자체에 대한 변경이 불가능(immutable)하지만, 변수에 다른 데이터를 할당할 수 있음
또한 원시 자료형을 변수에 할당할 경우 값자체 복사가 일어남

원시 자료형 변수 복사

원시 자료형을 변수에 할당할 경우 값 자체 복사가 일어남
각 변수 간에 원시 타입 데이터를 복사할 경우 데이터의 값이 복사된다.

let x = 100;
let y = x;
x = 99;
console.log(y) // 100

참조 자료형(reference)

배열[], 객체{}, 함수(function(){})

원시 자료형이 아닌 모든 것은 참조 자료형
변수의 크기가 동적으로 변함
데이터 보관함이 아닌 특별한 보관함(heap)에 저장이 됨
heap에는 데이터가 위치한 곳을 알려주는 주소가 저장이 되있음
원시 자료형이 할당될 때에는 변수에 값(value)자체가 담기고, 참조 자료형이 할당될 때에는 보관함의 주소(reference)가 담김

참조 자료형 변수 복사

각 변수 간에 참조 타입 데이터를 복사할 경우, 데이터의 참조가 복사된다.

let x = {count: 100};
let y = x;
x.count = 99;
console.log(y) // 99

원시 자료형 vs 참조 자료형

원시 자료형과 참조 자료형의 근본적인 차이는 보관함의 크기에서 발생한다
원시 자료형은 고정된 크기의 보관함을 사용한다
참조 자료형은 동적으로 크기가 변하는 특별한 보관함을 사용한다
원시 자료형이 할당 될 때에는 변수에 값 자체가 담기고,
참조 자료형이 할당 될 때는 보관함의 주소가 담긴다.

profile
개발자로서의 첫걸음

0개의 댓글