본문 바로가기
자바스크립트 Deep Dive

[Javascript] 컴퓨터는 어떻게 메모리를 참조할까

by 준생님 2023. 2. 5.

코딩을 할때 변수나 함수 선언시 데이터 타입이 정해진다.

Javascript를 예로 들어보겠다.

var score = 100;

숫자 타입의 식별자(score)가 선언 및 초기화되었다.

그렇다면 컴퓨터 내부에서는 어떤일이 일어날까?

 

1. (변수 선언 호이스팅) 메모리를 확보한다. 

1-1. Javascript number 타입은 64비트 부동소수점 형식을 이용하므로 메모리에서 8바이트를 확보한다.

1-2. 확보된 8바이트를 undefine으로 초기화한다.

읽어들인 메모리 모든 bit가 1일경우 undefine이라고 가정하였다

 

2. 심볼 테이블에 score 식별자에 대한 메모리 주소, 데이터 타입, 스코프를 저장한다.

 

3, score에 100을 대입하기 위해 새로운 메모리를 할당한다.

 

4. 심볼 테이블에 식별자 score에 대한 바뀐 메모리 주소를 입력한다.

 

 

 

컴퓨터가 score의 값을 참조할때 시퀀스
var score=100;
console.log(score);

1. 심볼테이블에 score가 있는지 먼저 확인한다. (없으면 undifined error)

2. 타입을 확인한다.

2-1 number타입임을 확인했으므로 8Byte를 읽을 것을 결정함.

2-2 읽어들인 2진수를 어떻게 해석할 지 결정함. (문자가 아닌 숫자로 읽을 것)

3. 메모리 주소를 확인한다.

4. 메모리 주소로 접근하여 8Byte를 읽어들인다.

5. 2.에 따라 읽어들인 2진수를 해석한다.