윤인성 님의 혼공 자바스크립트 강의를 듣고 내용을 정리합니다.
복합 자료형은 기본 자료형보다 훨씬 크다.
스택(stack)에 저장한다.
변수/상수를 만든다는 것은, 스택에 있는 상자에 이름을 붙여준다는 의미이다.
ex) a=10은, 스택 상자에 10을 넣고 그 상자의 이름을 a라고 붙여준다는 의미이다.
기본 자료형은 직접 스택에 저장이 된다.
힙(heap)에 저장한다.
복합 자료형은 그 자료를 가리키는 주소가 스택에 저장이 되고, 복합 자료형의 본체는 힙에 저장된다. 힙에 저장된 자료의 주소가 스택에 저장이 되는 것이다. 즉, 스택이 저장한 값은 힙에 저장된 자료의 주소를 가리키게 된다.
처리 후에
const
는 스택에 있는 값을 변경할 때만 오류가 발생한다.
힙에 있는 레퍼런스된 복합 자료형을 조작하는 것에는 문제가 없다!
const a = 1;
a = 2; //오류 발생. 스택에 a의 값이 저장되고 그 a를 변경하려하므로.
const a = [1, 2];
a.push(3); //문제 없음. 스택에는 a의 주소가, 실제 배열 값은 힙에 저장되어 있으므로.
강의 내용 매우 좋음. 꼭 다시 보기