데이터 타입에 의한 메모리 공간의 확보와 참조
- 값은 메모리에 저장하고 참조할 수 있어야 한다.
- 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 한다.
- 다시 말해, 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지를 알아야 한다.
- 예를 들어, 다음과 같이 변수를 선언하고 숫자 값을 할당해 보자.
var score = 100;
- 위 코드가 실행되면 컴퓨터는 숫자 값 100을 저장하기 위해 메모리 공간을 확보한 다음, 확보된 메모리에 숫자 값 100을 2진수로 저장한다.
- 이러한 처리를 하려면 숫자 값을 저장할 때 확보해야 할 메모리 공간의 크기를 알아야 한다.
- 자바스크립트 엔진은 데이터 타입, 즉 값의 종류에 따라 정해진 크기의 메모리 공간을 확보한다.
- 즉, 변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.
- 값을 참조하는 경우에도 마찬가지이다.
- 식별자
score
를 통해 숫자 타입 값 100이 저장되어 있는 메모리 공간의 주소를 찾아갈 있다.
- 이때 값을 참조하려면 한 번에 읽어 들여야 할 메모리 공간의 크기, 즉 메모리 셀의 개수(바이트 수)를 알아야 한다.
score
변수에는 숫자 타입의 값이 할당되어 있으므로, 자바스크립트 엔진은 score
변수를 숫자 타입으로 인식하며, 이를 통해 메모리 공간에 저장된 값을 읽어 들인다.
데이터 타입에 의한 값의 해석
- 그런데 아직 문제가 남아있다.
- 메모리에서 읽어 들인 2진수를 어떻게 해석해야 하느냐이다.
- 모든 값은 데이터 타입을 가지며, 메모리에 2진수, 즉 비트의 나열로 저장된다.
- 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있다.
- 예를 들어, 메모리에 저장된 값
0100 0001
을 숫자로 해석하면 65지만 문자열로 해석하면 'A'가 된다.
- 앞서 살펴본 예제의
score
변수에 할당된 값은 숫자 타입의 값이다. 따라서 score
변수를 참조하면 자바스크립트 엔진은 메모리 공간의 주소에서 읽어 들인 2진수를 숫자로 해석할 것이다.
정리
- 지금까지 살펴본 데이터 타입에 대해 정리해보자.
- 우선 데이터 타입은 값의 종류를 말한다.
- 또한 자바스크립트의 모든 값은 데이터 타입을 갖는다.
- 데이터 타입이 필요한 이유는 다음과 같다.
- 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
- 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
- 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해
📌 Reference