💡 변수(Variable)란? 데이터를 저장할 때 쓰이는 이름이 붙은 데이터 저장소를 말하며, 자바스크립트에서는 메모리에서 저장 공간을 확보하는 선언과 저장소에 데이터를 저장하는 할당을 통해 사용 가능하다.
변수의 선언과 데이터 할당
변수를 선언하고 데이터를 할당할 때 메모리 영역에서 어떤 일이 일어나는지 알아보자
변수 선언
자바스크립트에서는 var, let, const 키워드를 통해 변수를 선언할 수 있다.
let name
let 키워드로 변수를 선언하면 컴퓨터는 메모리에서 비어있는 공간 하나를 확보 후, 식별자(변수 이름)를 name으로 지정한다. 이후 변수 name에 접근하면 메모리에서 식별자가 name인 주소를 검색해 해당 공간의 데이터를 반환하게 된다.
데이터 할당
데이터는 그 성질에 따라 할당되는 메모리 영역이 다르다.
- 실제 데이터 값이 담기는 데이터 영역
- 식별자와 데이터 영역의 주솟값이 담기는 변수 영역
let name
name = '박중섭'
// 변수의 선언과 할당을 동시에 해줄 수 도 있다.
let name = '박중섭'
위 코드를 보면 식별자가 name인 주소를 검색 후, 해당 공간의 데이터 값으로 문자열 '박중섭'을 할당하고 끝날것 같지만...
실제로는 식별자가 할당된 변수 영역에는 데이터 값을 직접 저장하지 않으므로 데이터 영역의 메모리 공간을 다시 확보하여 문자열 '박중섭'을 저장하고, 그 주소를 변수 영역에 저장하는 식으로 이루어진다!
즉 할당 과정을 다시 정리해보면 다음과 같다.
- 1. 메모리 영역 중 변수 영역에 비어있는 공간 @1002를 확보
- 2. 확보한 공간의 식별자를
name으로 지정 - 3. 메모리 영역 중 데이터 영역에 비어있는 공간 @5002를 확보
- 4. 확보한 공간에 문자열 '박중섭'을 저장
- 5. 변수 영역에서 식별자가
name인 주소(@1002)를 검색 - 6. 해당 공간의 데이터 값으로 문자열 '박중섭'이 저장된 데이터 영역 주솟값(@5002)을 할당
