변수의 생명 주기(life cycle)

지역 변수의 생명 주기

지역 변수 예시 코드

function showAge() {
  let age = 10;
  return age;
}

console.log(showAge()); // 10
console.log(age); // age is not defined

지역 변수 age를 showAge함수 밖에서 호출하면 'age is not defined'라고 출력이 된다.

showAge함수를 호출하면 변수 age가 생성되고 함수가 종료될 때 변수는 소멸한다. 즉 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다


전역 변수의 생명 주기

전역 변수 예시 코드

// 전역 변수는 지역 변수와 달리 진입점이 따로 없다
// 전역 변수는 코드가 로드되자마자 곧 바로 해석되고 실행된다
// 그리고 더 이상 실행할 문이 없을 때 종료한다

let number = 10;

function foo() {
  console.log(number) // ?
  let number = 5;
  console.log(number) // ?
}

foo();
console.log(number); // ?

var를 쓰는 경우에는...?

var number = 10;

function foo() {
  console.log(number) // ?
  var number = 5;
  console.log(number) // ?
}

foo();
console.log(number); // ?