자바스크립트에는 2가지 타입이 있다.
컴퓨터의 모든 데이터는 0 , 1로 구성되어있다. 0 또는 1만 표현 할 수 있는 하나의 메모리 조각을 '비트'라고 한다.
0 또는 1로 데이터 공간을 찾는것은 매우 비효율 적이다.
그래서 비트를 한 단위로 묶어서 효율적이게 활용할 수 있게 만들기 시작했다.
그래서 8개의 비트를 묶어 1바이트 라는 단위가 생겼다.
여기서 중요한 것은 데이터를 할당하는 데이터 타입이 무엇인지 타입을 확실히 알아야 한다.
데이터를 할당 할 때에는 데이터 영역이 있다는걸 까먹지 말자.
let data = 100;
이 경우에 data 라는 변수 영역이 생겼으며, 변수 영역 안에는 이름 : data / 값 : @5000 정보가 들어있다.
값의 @5000은 데이터 영역의 주소값을 가리킨다.
데이터 영역은 주소 : @5000 / 값 : 100 을 가지고 있다.
여기서 알아야 할점.!
let data = 200;
data에 새로운 값을 할당 할 경우, 변수 영역의 값의 데이터 영역의 값이 변한다.
데이터 영역에서 200이라는 값을 찾은 후에 값이 없을 경우, @5001 이라는 새로운 영역을 만들어서 변수영역의 data라는 값에 주소값을 변경해준다.
기존에 가지고 있던 100 값은 값이 변경된게 아니라는 점.!
우리 눈에는 값이 변경된 거 처럼 보일 수 있지만, 값은 사라지거나 없어지지 않았다.
데이터 영역에 값이 있는지 없는지 확인 후 없으면 새로운 데이터 영역을 만들어주고, 주소값을 변경해주는 것.
** 객체의 불변성이라는 말은 여기서 나온 말이기 때문에 이해를 잘 해야 한다.