- 기본 타입 (Primitive)
- Number : 정수와 실수 구분 없이 하나의 숫자 타입만 존재
- String : 문자열을 표현하는 타입
- Boolean : 논리적인 값 'true' 'false' 만 있음
- Undefined : 변수가 선언되었으나 값이 할당되지 않은 상태
- Null : 어떤 값을 의도적으로 비어 놓음
- Symbol : ES6 에서 추가 되었고 고유하고 수정 불가능한 데이터 타입
- 참조 타입 (Reference Types)
- 배열(Array) 함수(Function) 날짜 (Date) 정규 표현식(RegExp)값으로 나뉘어짐
-> 자바스크립트는 기본 타입과 참조 타입으로 나뉘는데, 동적 타이핑과 타입 변환의 이해가 중요하다
- 기본 타입은 값이 직접 변수에 저장되어 불변하고 독립적인 반면, 참조 타입은 메모리 주소를 참조 하여 가변적이고 연결된 데이터를 표현한다.
-> 데이터의 크기, 복잡성, 메모리 사용 방식에 따라 최적화된 메모리 관리를 가능 하게 한다.
이 부분을 이해하기 위해서는 스텍 (Stack)과 힙(Heap)의 개념을 알아야 함
- Stack : 정해진 크기의 공간에서 연속적으로 데이터를저장
- Heap : 동적 메모리 할당에 사용 되는 메모리 영역 (객체와 같은 참조 타입의 데이터를 저장하는데 사용)
-> 유연하고 동적인 저장 공간을 가지지만, 메모리가 복합적이기에 효율적인 성능 최적화가 필요
ex) 기본 타입의 : Number, null 등은 직접적인 값을 변수에 저장 한다. 이 값들은 스텍 메모리에 위치하며, 각각 독립적이고 불변함
참조 타입 : 객체 , 배열 , 함수 등은 참조 타입으로, 변수에는 실제 데이터가 아닌 메모리 주소가 저장되고, 이 메모리 주소를 통해 힙 영역에 저장된 객체에 접근 한다. 따라서 참조 타입은 가변적이며, 하나의 객체를 여러 변수가 참조 할 수 있기에 데이터 소모가 적다.
정리
