✍🏻원시 자료형과 참조 자료형
원시 자료형(primitive type)
- 하나의 데이터를 담고 있다.
- 할당될 때 변수에 값 자체가 담긴다.
- 변수에 하나의 데이터만 담는다.
- stiring, number, bigint, boolean, symbol, undefined, null
참조 자료형(reference type)
- 할당될 때 변수에 heap의 주소가 담긴다.
(heap : 데이터를 동적으로 담을 수 있는 저장소)
- 데이터의 크기가 동적으로 변하는 데이터 보관함
문제
코드가 실행된 후, x의 값은?
let x = 5;
let y = x;
y=6;
console.log(x) // 5
코드가 실행된 후, x.foo의 값은?
let x = {foo: 5}
let y = x;
y.foo = 2;
consonle.log(x.foo) // 2
풀이
- 원시 자료형을 할당하는 경우, 그 값 자체를 변수에 할당한다. x가 할당된 y에 다른 값을 넣어도 x는 변하지 않는다.
- 참조 자료형을 할당하는 경우, 그 값을 가진 주소를 할당한다. x가 할당된 y에 같은 주소를 할당하기 때문에 y의 주소의 담긴 값을 바꾸면 같은 주소를 보는 x도 값이 바뀐다.