상세 컨텐츠

본문 제목

JavaScript :: 스코프(Scope)

JavaScript

by 비오스터딩 2020. 8. 25. 00:11

본문

 

  스코프 ?  

유효범위. (참조대상식별자의 유효범위)

참조 대상 식별자를 찾아내기 위한 규칙. 

(참조 대상 식별자 == identifier, 변수, 함수의 이름과 같이 식별할 수 있는 이름)

 

예를 들어 전역에 선언된 변수 x는 어디서든 참조할 수 있지만,

함수 내에 선언된 변수 x는 함수 외부에서는 참조 할 수 없다.

이런 규칙을 스코프라고 부른다. 

 

 

>> 자바스크립트의 변수(var)는 함수 레벨 스코프(function-level scope)를 따른다.

그러나 var 대신 let을 사용하면 블록 레벨 스코프(block-level scope)를 사용할 수 있다.

함수레벨 스코프의 경우,

함수 밖에서 선언된 변수는 코드블록내에서 선언되었다 할지라도 전역스코프를 가진다.

함수 내에서 선언되었을 경우 지역스코프를 가진다.

 

 

 

- 전역 스코프(Global Scope) : 코드 어디서든 참조할 수 있다.

- 지역 스코프(Local scope) : 함수 코드 블록이 만든 함수 자신과 하위 함수에서만 참조할 수 있다.

 

 

- 렉시컬 스코프(Lexical scope)

 함수를 어디서 선언하는지에 따라 스코프가 결정된다.

 즉 함수를 어디에서 호출하였는지는 스코프 결정에 아무런 의미를 주지 않는다.

함수 bar를 전역에 선언하였으므로,

bar의 상위 스코프는 전역스코프이다.

따라서 위의 예제는 전역변수 x의 값 1을 두번 출력한다.

 

 

 

 

반응형

관련글 더보기

댓글 영역