Scope

Scope


1. Scope

Scope

어떤 함수의 바깥에 변수를 선언하면, 현재 문서의 다른 코드에 해당 변수를 사용할 수 있기에 전역 변수라고 합니다. 만약 함수 내부에 변수를 선언하면, 오직 그 함수 내에서만 사용할 수 있기에 지역 변수라고 부릅니다.

ECMAScript 2015 이전의 JavaScript는 블록 문 스코프가 없습니다. 그래서 오히려, 블록 내에 선언된 변수는 그 블록 내에 존재하는 함수(혹은 전역 스코프)에 지역적입니다.

  • 지역 변수 : [] 안에 한번만 선언, 해당 []안에서만 사용 가능
  • 전역 변수 : [] 밖에 한번만 선언, 모든[]에 사용 가능
  • 선언자 생략시 변수만 사용하면 전역 변수가 된다
let num = 100;
num = 500; // 재할당 가능
{
   let num = 200; // 재할당
  console.log(num) => 200
  {
    let num = 300; // 재할당
    console.log(num);  => 300
    {
      let num = 400; // 재할당
      console.log(num) => 400
    }
    console.log(num); => 300
  }
  console.log(num); => 200
}
console.log(num); => 500