데이터를 저장하는 두 가지 방식이 있다.
원시 자료형은 하나의 값을 저장한다.
string, number, bigint, boolean, undefined, symbol, (null)
이러한 타입들은 원시 자료형이다.
"jeje", 1, true, undefined //string, number, boolean, undefined
참조 자료형은 여러 값을 저장할 수 있다.
배열, 객체, 함수
이러한 타입들을 참조 자료형이다.
[1, 2, 3]; //배열 { name: "jeje", age: 80 }; //객체 function ref() { return "reference"; } //함수
참조 자료형은 원시 자료형과 다르게 heap이라는 저장공간이 필요하다.
let menu = ["마라탕", "파스타", "김치찜"]; //heap에 배열의 값들이 저장됨
예를 들어 이렇게 menu라는 변수에 배열을 할당했다.
이때 배열의 값들은 heap에 저장되고, menu 변수에는 heap의 주소값이 저장된다.
출처: Python Tutor: Visualize code in Python, JavaScript, C, C++, and Java 사용.
(Objects 부분이 heap이라고 생각하면 된다.)
따라서 menu 변수에 저장된 주소값으로 heap에 있는 배열의 값들을 찾아올 수 있는 것이다.