특징 : 변수에 하나의 데이터를 stack에 저장
종류 : number, string, boolean, null, undefiend 등
동작원리 : stack에서 변수명에 따라 각 변수마다 가상의 공간을 부여
한계 : 하나의 변수에 하나의 데이터만 저장 가능하다.
특징 : 변수 하나에 주소를 부여해서 데이터를 heap에 저장
종류 : array, object, function 등
동작원리 : stack에서 변수명에 따라 각 변수마다 가상의 공간에 주소를 부여, stack안에 있는 빈공간 heap에서 변수 주소에 따라 데이터를 별도로 저장
장점 : 용량의 한계가 있는 stack에는 주소만 저장하고, 데이터의 크기가 동적으로 변할 수 있기 때문에 많은 양의 데이터를 저장하여 참조할 수 있다.
1번과 2번의 데이터는 원시 자료형이다.
3번과 4번의 데이터는 참조 자료형이다.
이때 엄격한 비교(===)는 각 데이터의 주소값을 비교하기 때문에,
데이터 안의 내용이 같더라도 3번과 4번의 데이터는 각기 다른 주소값을 같는다.
( [ ]===[ ] 의 결과가 false가 나오는 것과 같은 이치! 이미 첫번째 배열과 두번째 배열은 각기 다른 주소를 갖고 있다.)