스코프

#1 스코프란?

  • 식별자가 유효한 범위
  • 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙

식별자란 어떤 값을 구별하여 식별할 수 있는 고유한 이름이다. 변수나 함수의 이름을 식별자라고 한다.

 

#2 스코프의 종류

전역과 전역스코프

전역이란 코드의 가장 바깥영역이다. 전역에 변수를 선언하면 전역변수가 된다. 전역변수어디서든지 참조할 수 있다.

지역과 지역스코프

지역이란 함수 몸체 내부이다. 지역변수자신의 지역 스코프와 하위 지역 스코프에서 유효하다.

 

#3 스코프 체인

  • 정의: 스코프가 계층적으로 연결 된 것
  • 스코프체인은 물리적으로 렉시컬환경(lexical environment)라는 자료구조로 구현된다.
  • 변수참조시 자바스크립트 엔진은 스코프체인에서 참조되는 위치부터 시작해서 상위 스코프 방향으로 이동하며 선언된 변수를 검색한다.

 

#4 함수 레벨 스코프

  • 블록(block) 레벨 스코프: 코드 블럭에 의해서 지역 스코프가 생성됨
  • 함수 레벨 스코프: 오로지 함수의 코드 블록만을 지역 스코프로 인정

자바스크립트 엔진에서 식별자는 함수 레벨 스코프이다. 반면에 java, C의 경우, if문, while문 까지 코드 블럭을 스코프로 본다.

 

#5 렉시컬 스코프

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

자바스크립트 엔진은 정적 스코프를 따른다.

 

참고문헌

https://product.kyobobook.co.kr/detail/S000001766445

 

모던 자바스크립트 Deep Dive | 이웅모 - 교보문고

모던 자바스크립트 Deep Dive | 269개의 그림과 원리를 파헤치는 설명으로 ‘자바스크립트의 기본 개념과 동작 원리’를 이해하자!웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도로

product.kyobobook.co.kr