JS 변수 원리

개발 log·2021년 9월 6일
0

JS 지식

목록 보기
5/36
post-thumbnail

undefined가 들어갈 만큼의 공간을 확보하고 undefined를 할당
여기서 undefined의 메모리크기는 브라우저마다 다르기에 알 수 없다

메모리 주소와 변수는 1:1 매핑관계

변수는 식별자가 맞지만 식별자는 변수가 아니다

위 문장의 뜻을 식별자의 범위가 더 크다는 것을 의미

JS에서 값을 처음 할당할 때

var a = 30;

위와 같은 구문이 있으면

var a; // 선언문
a = 30; // 할당문

위의 구문을 함축해 놓은 것인데 JS는 런타임 이전에 모든 선언문을 먼저 실행하여 undefined라는 값을 할당해 놓는다.

그 후 할당문을 통해 값을 할당하면 해당 메모리주소의 값을 지우고 다시 쓰는 것이 아닌 새로운 메모리 주소에 할당할 값을 넣고 연결된 메모리주소를 새로 할당된 값의 메모리주소로 연결한다.

그 후 가비지 콜렉터가 변수로 선언되어 있지 않은 메모리는 초기화시킨다.

호이스팅현상도 JS의 특징인데 위와 같은 구문에서 런타임 이전에 모든 선언문을 undefined로 할당한 후 런타임에 들어가기 때문에 호이스팅 현상이 발생하는 것이다.

profile
프론트엔드 개발자

0개의 댓글