모던 자바스크립트(ch13. 스코프)

김도형·2022년 9월 23일
0

스코프란?

  • 스코프는 식별자가 유효한 범위를 말한다.
  • 이름이 동일한 식별자이지만 스코프가 다른 별개의 변수
var x = 'global';

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

foo();

console.log(x) // global

var vs let, const

  • var : 같은 스코프 내에서 중복 선언 허용
  • let, const : 같은 스코프 내에서 중복 선언 허용 안함.

스코프 종류

  • 전역 스코프
  • 지역 스코프

스코프 체인

  • 변수를 참조하는 코드의 스코프에서 시작하여 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다.

함수 레벨 스코프

  • 블록 레벨 스코프(ES6 let, const) : 모든 코드 블록(if, for, while, try/catch 등) 지역 스코프
  • 함수 레벨 스코프(var) : 오로지 함수의 코드 블록(함수 몸체)만을 지역 스코프
    • if문에 변수는 전역 변수이다.

렉시컬 스코프(정적 스코프)

  • 렉시컬 스코프(정적 스코프) : 함수를 어디서 정의하는지에 따라 함수의 상위 스코프 결정
  • 동적 스코프 : 함수를 어디서 호출하는지에 따라 함수의 상위 스코프 결정
  • 자바스크립트를 비롯한 대부분의 프로그래밍 언어는 렉시컬 스코프를 따른다.

출처 : 모던 자바스크립트 Deep Dive(P.189 ~ P.198)
저자 : 이웅모 지음, 위키북스

profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글