🚩 학습 목표
자바스크립트의 데이터 종류에 대해 이야기할 수 있고, 각각 메모리에 어떻게 저장되고 사용 되고, 수거 되는지를 이해 할 수 있다.
✅ 체크 리스트
(데이터의 메모리 저장 구조)
에 대해 다음 질문에 답할 수 있어요var a = 3;
이 메모리에 저장되는 과정을 설명a = 7;
이 되었을 때, 3이 더 이상 사용되지 않을 때 무슨일이 일어나는지 설명🏃♀️ 긴 기간 몰입하기 위해서, 미래를 잘 설계하고 긍정적인 결과를 기대하자. 그래야 지치지않는다.
데이터 타입 : 프로그래밍 언어에서 사용할 수 있는 데이터의 종류를 말한다.
기본형과 참조형의 차이점
기본형 : 값이 담긴 주소값을 바로 복제
참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소값 복제
🔎 데이터 타입 이해를 위한 배경 지식
자바스크립트는 변수명이 할당된 주소에 직접 데이터를 저장하지 않는다.
변수 선언 - 변수 영역에 변수명이 저장됨
var a;
데이터 할당 - 데이터 영역에서 ‘abc’라는 값을 찾아보고 있으면 그 데이터의 주소를, 없다면 새로 할당한 데이터의 주소를 변수명의 변수에 저장한다.
var a;
a = 'abc';
var a='abc';
데이터 변경 - 새로 할당하는 값 ‘def’라는 값에 대해 2번 과정을 거친다. 이 때, 이전에 할당했던 값 ‘abc’는 이제 어떤 식별자와도 연결되어 있지 않기 때문에, 가비지 컬렉션이라는 자동 메모리 관리 방법에 의해 자동 해제 된다.
단, 메모리에서 언제 해제될지는 예측할 수 없다.
var a;
a = 'abc';
var a='abc';
a = 'def'
👉 변수 영역에 값을 직접 대입하지 않는 이유는?
(= 변수영역과 데이터영역을 나누는 이유)
변수 영역에 값을 바로 할당한다고 할 때
8byte * 500개 = 4000byte
데이터 영역에 값을 저장 후 해당 주소를 변수 공간에 입력할 때
2byte * 500 + 8byte = 1008byte