
"출처 https://dev.to/cassiolacerda/working-with-immutable-arrays-and-objects-in-javascript-2obb"
기본적으로 JavaScript는 **원시 타입**에 대한 **값을 저장하기 위해 Call Stack 메모리 공간**을 사용하지만 **참조 타입**의 경우 **Heap이라는 별도의 메모리 공간**을 사용합니다.
이 경우 **Call Stack**은 개체 및 배열 값이 아닌 **Heap 메모리 참조 ID**를 값으로 저장합니다.원시 타입: 고정된 크기로 Call Stack 메모리에 저장, 실제 데이터가 변수에 할당
참조 타입: 데이터 크기가 정해지지 않고 Call Stack 메모리에 저장, 데이터의 값이 heap에 저장되며 변수에 heap 메모리의 주소값이 할당
| Name | Description |
|---|---|
| string | 문자열을 나타냅니다. |
| number | 숫자 값을 나타냅니다. |
| boolean | true와 false 값을 가지고 있습니다. |
| null | 하나의 값을 가집니다: null 의도적으로 '값이 없음'을 나타내기 위해 사용됩니다. |
| undefined | 하나의 값을 가집니다: undefined. 초기화되지 않은 변수의 기본값입니다. |
| symbol | 변경 불가능한 유일한 값을 생성할 때 사용하며, 값 자체의 확인이 불가하여 외부로 노출되지 않습니다. ES6에서 새로 생긴 타입입니다. |
| Name | Description |
|---|---|
| function | 함수를 나타냅니다. |
| array | 배열을 나타냅니다. |
| classes | 클래스를 나타냅니다. |
| object | 객체를 나타냅니다. |
JavaScript는 느슨한 타입(loosely typed)의 동적(dynamic)언어 입니다. JavaScript의 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당(및 재할당) 가능합니다.

