스코프
- 자바스크립트의 변수에는 유효 범위가 있음
- 변수와 같은 식별자에 대한 유효 범위를 스코프라고 함
- 유효범위는 전역공간과 지역공간으로 크게 두가지로 나뉘며, 이에따라 변수 또한 전역변수와 지역변수로 나뉨
전역 변수
- 스크립트 영역 어디에도 힘을 발휘 할 수 있는 변수
- 변수가 어떤 블록안에 들어가있지 않을 경우 전역변수라 함
지역 변수
- 정해진 영역에서만 힘을 발휘하는 변수
- 보통 블록 { } 안이나, 함수 안에서만 변수에 접근할 수 있음
스코프 체인
- 식별자의 유효범위 즉, 스코프를 안에서부터 밖으로 검색해 나가는 것을 스코프 체인이라고 함
- 컨텍스트는 해당 코드의 외부환경정보를 수집해 올 때 스코프 체인이 발생
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var a =1; //전역공간 변수 | |
var outer = function () { | |
var inner = function () { | |
console.log(a) ---------> undefinde | |
var a =3 //지역변수 | |
} | |
inner() | |
console.log(a) ----------> //결과 1 | |
} | |
outer() | |
console.log(a) -----------> //결과 1 |
└ a가 1이 되는 이유 : 바로 위 식별자의 Environment를 참조해오기 때문
① 먼저 outer가 외부환경의 정보를 수집하는 과정에서 전역공간의 변수 a를 수집해옴
② 다음으로 inner는 outer의 Environment를 참조해서 외부환경의 정보를 수집해옴
③ 이렇게 전역공간의 a를 데리고 옴
④ 따라서, 바로 위 식별자의 Environment를 참조하는 것이 스코프 체인임
'Web Basic > JavaScript' 카테고리의 다른 글
ES6의 특징 (0) | 2022.04.18 |
---|---|
==, === 차이점 (0) | 2022.04.18 |
실행 컨텍스트와 호이스팅 (0) | 2022.03.28 |
Array의 필수 메서드(02) (0) | 2022.03.21 |
Array의 필수 메서드 (1) (0) | 2022.03.21 |