본문 바로가기

프론트엔드/코드스테이츠 회고

회고: 원시 자료형 vs 참조 자료형

원시자료형 : 숫자 문자열 불린 undefined null

  • 데이터 보관함 한 칸에 하나의 데이터만
  • 원시 자료형은 값 자체에 대한 변경이 불가능하지만, 변수에 다른 데이터를 할당 할 수는 있다.
let x = 2;
let y = x;
y = 3;

변수 x의 값은 원시 자료형이기 때문에 x의 값이었던 2를 y에 복사하여 할당

y에 3이 할당되어도, 여전히 x는 2

----------------------------------------------------------------------------------------------------------------------

 

참조자료형 : 배열, 객체, 함수

  • 참조 자료형에는 하나의 데이터가 아닌 여러개의 데이터가 담기게 되고 참조 자료형의 데이터 자체는 원시 자료형이 보관되는 데이터 보관함이 아닌 특별한 데이터 보관함(heap)에 저장된다.
  • 변수에는 이 데이터가 위치한 곳(메모리 상 주소)을 저장한다.
  • heap은 마음대로 사이즈를 늘리고 줄일 수 있어서 "동적으로 변한다"고 표현

ex:

let player = { score: 3 };
function doStuff(obj) { 
  obj.score = 2;
}

doStuff(player);

 

함수가 호출되면 매개변수 obj에 변수 player의 값이 할당된다. //{ score: 3 }의 주소값 //

obj.score에 2를 할당하면, obj와 player는 같은 주소값을 가지고 있기 때문에, player.score도 2가 된다.

 

 

 

'프론트엔드 > 코드스테이츠 회고' 카테고리의 다른 글

코드스테이츠 Secton1 마침 -KPT 회고  (0) 2022.07.20
회고: Dom  (0) 2022.07.14
회고: koans  (0) 2022.07.13
회고: js mutable, immutable  (0) 2022.07.07
회고: CLI  (0) 2022.07.06