의 특징 - 값의 할당

2896 단어 JS기본JS기본

이번 포스팅에선 JS에서 값이 어떻게 할당되는지 알아보려고 한다.

아래의 코드를 보고 출력이 어떻게 될지 한번 생각해보자.

console.log(score);

var score;//1
score = 80;//2

console.log(score);

호이스팅의 영향으로 변수 선언 1번은 런타임 이전에 실행되고 값 할당 2번은 런타임에 실행된다. 따라서 첫번째 console.log(score)는 undefined가 두번째는 80이 출력 될 것이다.

console.log(score);

var score = 80;

console.log(score);
console.log(score);

score = 80;
var score;

console.log(score);

두 코드 모두 출력이 같다.
메모리 할당은 아래 사진과 같다.

1
2

변수에 값을 할당 할때 기존 저장되어있던 메모리 공간을 지우고 그 메모리 공간에 할당 한 값을 새롭게 저장하는것이 아닌 새로운 메모리 공간을 확보해 그곳에 할당 값을 저장한다는 점에 주의하자.

2번 사진을 기준으로 현재 score값을 제외한 이전 값 undefined와 80은 어떤 식별자와도 연결되어 있지 않다. 즉, 더이상 필요하지 않은 값이다. 이러한 불필요한 값들은 가비지 콜렉터에 의해 메모리에서 자동 해제되며 언제 해제될지는 예측할 수 없다.

좋은 웹페이지 즐겨찾기