원시타입 - 숫자, 문자열, 불리언, null, undefined, Symbol
참조 타입 - 객체, 배열, 함수
참조타입의 특징:
객체는 변수에 메모리주소를 담고 있기 때문에 객체의 속성 변형 시, 객체 원본이 바뀌게 된다. 따라서, 불변객체를 만들기 위해 immer.js, immutable.js 라이브러리를 활용할 수 있다. 복잡한 데이터 구조를 다룰때 유용.
Object.freeze()의 경우, 한개의 깊이만 가능하다.
undefined- 변수 초기화 전, 값이 없음을 나타낸다. (자바스크립트 엔진이 자동으로 변수값이 없을경우 할당한다)
null- 개발자가 명시적으로 변수에 '비어있음'을 나타낼때 쓴다. 객체의 초기값, 변수에 할당된 값을 초기화할때 사용한다.