TIL 10. JS 변수 선언 과정

rahula·2021년 5월 13일
0

javascript

목록 보기
2/15
post-thumbnail

javascript의 변수 선언 과정에 대해서 알아보겠습니다. 이 글은 코어자바스크립트 책을 토대로 쓰여졌습니다.

변수 선언 과정

identifier (식별자)

컴퓨터는 모든 data를 0또는 1로 바꿔 기억한다. 이렇게만 표현할 수 있는 하나의 메모리 조각을 비트라고 한다. 메모리는 매우 많은 비트들로 구성돼 있는데, 각 비트는 자바스크립트에서는 바이트로 묶여 고유한 식별자를 통해 위치를 확인할 수 있다.

모든 데이터는 바이트 단위의 identifier, 더 정확하게는 메모리 주솟값을 통해 서로 구분되고 접근된다.

변수와 식별자의 근본적인 차이. 변수는 변경 가능한 data가 담길 수 있는 메모리 영역의 공간이다. 반면 식별자는 그 공간에서 어떠한 메모리 영역에서 어던 data를 식별하는데 쓰이는 이름, 즉 변수명이다.
변수를 선언하면 특정 식별자를 갖고 특정 값을 가진 공간의 주솟값이 등록된다.

변수 선언

let a;

변수를 선언한다는 명령은 컴퓨터로 하여금 메모리에서 비어있는 공간 하나를 확보하도록 한다. 그 공간에는 주솟값이 있고, 공간의 이름(식별자)를 a라고 지정한다. 여기까지가 변수 선언 과정.
이후에 사용자가 a에 접근하고자 하면, 컴퓨터는 메모리에서 a라는 이름을 가진 주소를 검색해 해당 공간에 담긴 data를 반환할 것이다.

데이터 할당

a = 123;

a라는 이름을 가진 주소를 검색해서 그곳에 숫자 123을 할당한다.
그러나 실제로는 해당 위치에 숫자 123을 직접 저장하지 않는다. data를 저장하기 위한 별도의 메모리 공간을 다시 확보해서 숫자 123을 저장하고, 그 주솟값을 변수 영역에 저장하는 식으로 이뤄진다.

변수영역과 데이터 영역

여기서 데이터의 성질이 구분된다. 변수 영역은 변수라는 공간안에 식별자와 주솟값을 가진다. 반면에 데이터 영역은 해당 공간 안에 그 값만을 갖는다.

왜 그럴까? 이는 데이터 변환을 자유롭게 할 수 있게 하면서 메모리를 더욱 효율적으로 관리하기 위함. 중복된 데이터에 대한 처리 효율이 높아진다.

profile
백엔드 지망 대학생

0개의 댓글