🚩 한줄 요약

전역 변수의 무분별한 사용은 위험하다 !!

1. 지역 변수의 생명 주기

변수는 생명 주기 가지고 있다.

변수의 생명 주기란?

메모리 공간이 확보된 시점부터 메모리 공간이 해제되어 가용 메모리 풀에 반환 되는 시점 까지

만약, 변수 생명 주기가 없다면 ? → 선언된 변수는 영원히 메모리 공간을 점유

지역 변수는 함수가 호출되면 생성, 함수가 종료하면 소멸.

function foo() {
  var x = 'local';
  console.log(x); // local
  return x;
}

foo();
console.log(x); // ReferenceError: x is not defined

예제 작동 방식

  1. x 변수의 선언문이 자바스크립트 엔진에 의해 가장 먼저 실행되어 x 변수가 선언되고, undefined로 초기화
  2. 그 후 함수 몸체를 구성하는 문들이 순차적으로 실행되기 시작하고 변수 할당문이 실행되면 x 변수에 값이 할당.
  3. 함수 종료? → x 변수도 소멸 → 생명 주기 종료.

결론: 함수 내부에 선언된 지역 변수 x는 foo 함수가 호출되어 실행되는 동안에만 유효

그럼 전역변수란 무엇인가?