기본형 (불변값) : 숫자, 문자열, 불리언, null, undefined 등이 있음.
ES6, 추가로 심볼(Symbol) 추가
참조형: 객체(object), 배열(Array), 함수, 날짜, 정규표현식
ES6, 추가로 Map, WeakMap, Set, WeakSet 등 객체의 하위 분류에 속함.
기본형 ➤ 값이 담긴 주솟값을 바로 복제
참조형 ➤ 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제한다는 점
불변값
값이 변하면 변수, 변할 수 없으면 상수
가비지 컬렉터
- 런타임 환경에 따라 특정 시점이나 메모리 사용량이 포화 상태에 임박할 때마다 자동으로 수거 대상자를 수거 한다.
수거된 메모리는 다시 새로운 값을 할당할 수 있게 빈 공간이 된다.
불변객체
불변객체는 React,Vue,Angular 등의 라이브러리or프레임워크뿐만 아니라,
함수형 프로그래밍, 디자인 패턴 등에서도 매우 중요한 기초가 되는 개념이다.
undefined와 null
JS에서는 없음을 나타내는 두 가지가 있다.
undefined
,null
- 사용자가 명시적으로 지정할 수도 있지만, 값이 존재하지 않을 때 자바스크립트 엔진이 자동으로 부여하는 경우도 있다.
- undefined를 지정하는 경우는 달리 덧붙일 내용이 없어 넘어가는 반면,
자바스크립트 엔진은 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는
그렇게 하지 않았을 때 undefined를 반환한다.다음 세 경우가 해당된다.
- 값을 대입하지 않은 변수,
즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때- 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
<프로퍼티: 변수 옵젝에 담긴 것을 접근하고자 할 때 . 찍어 접근>- return 문이 없거나 호출되지 않는 함수의 실행 결과
🚫 null은 한 가지 주의할 점이 있다.
typeof
null 이 object
라는 점!!위 와 같이 일치 연산자(===)를 사용 함으로써 정확히 판별 가능하다.
정리를 하자.