less than 1 minute read

JS 렉시컬 스코프

JS 는 렉시컬 스코프. 렉시컬 스코프는 정적 스코프.
  • 정적 스코프 vs 동적 스코프

    • 정적 스코프

      함수를 어디서 선언하였는지에 따라 상위 스코프 결정
      

let microcephalus7 = "microcephalus7";
function home() {
  let microcephalus7 = "microcephalus7@gmail.com";
  console.log(microcephalus7);
  microcephalus7Call();
}
function microcephalus7Call() {
  console.log(microcephalus7); // 함수 호출 시점에서 환경과 상관없이 스코프는 전역을 참조함
home();

// microcephalus7@gmail.com
// microcephalus7

  • 동적 스코프

    함수를 어디서 호출했는지에 따라 상위 스코프 결정
    

let microcephalus7 = "microcephalus7";
function home() {
  let microcephalus7 = "microcephalus7@gmail.com";
  console.log(microcephalus7);
  microcephalus7Call(); // 함수 호출 시점은 home 함수 내부이므로 스코프는 home 함수에서 설정됨
}
function microcephalus7Call() {
  console.log(microcephalus7);
}
home();

// microcephalus7@gmail.com
// microcephalus7@gmail.com

  • 렉시컬 스코프

    정적 스코프

    JS 가 채택한 스코프 방식