기본형 데이터와 참조형 데이터
- 기본형 데이터(Primitive Type)
Number
String
Boolean
null
undefined
Symbol
기본형 데이터는 값을 그대로 할당한다.
메모리상에 고정된 크기로 저장되며 원시 데이터 값 자체를 보관하므로, 불변적이다.
기본적으로 같은 데이터는 하나의 메모리를 사용한다.(재사용)
기본형 데이터 변수(a, b, c)를 타이핑하면 우선 변수를 저장할 비어있는 데이터 영역을 확보한다.
- 변수 a는 313번 영역에, b는 314번 영역에, c는 315영역 해당주소를 확보하고 해당주소를 변수명과 맵핑시킨다.
- 기존 변수명을 새롭게 할당하려고 하는 경우, 새로운 변수는 별도의 공간을 확보하고, 불리언값을 통해 기존 변수에 대입된다.(기본값은 직접적인 비교가 가능하다)
-참조형 데이터(Reference Type)
참조 타입은 변수에 할당할때 값이 아닌 데이터의 주소를 저장한다.
Object
Array
- const 로 선언된 변수 배열에 Array.push를 적용할 수 있는 이유는 배열은 참조 타입이기 때문에 데이터의 주소를 대입할 수 있기 때문이다.
Function RegExp
- 문자열에 나타나는 특정 문자조합과 대응시키기 위해 사용되는 패턴이다.
Map
else..
참조형은 기본형 데이터의 집합이다. 참조형 데이터는 값이 지정된 주소값을 할당한다.
객체의 선언은 위와 같이 저장된다.
- 값이 저장된 주소값을 할당한다.
- 비어있는 데이터 공간을 확보하고, 객체 속 프로퍼티에 대한 공간을 다시 확보한다.
- 객체의 프로퍼티 명과 주소를 매칭하고 확보했던 두 번째 주소에 데이터를 할당한다.
- 변수를 선언하면 데이터가 담길 공간을 확보하고, 확보된 데이터의 주소값을 가지고 변수면과 매칭시키는 선언과정까지 동일하나, 할당 과정에 차이를 갖는다.
값을 직저 저장 하게 되면
- 데이터 할당시에는 빠름
- 비교에 대이터 비용이 많이 듬
- 메모리 낭비가 심함
값의 주소를 저장하는 경우
- 데이터 할당시에는 느림
- 비교에 비용이 들지 않음
- 메모리 낭비 최소화