스코프란?
특정 변수들이 선언되어있는 공간이나 환경. 각각의 변수, 매개변수, 함수 등이 유효한 영역을 뜻한다.
스코프에는 전역 스코프(Global scope), 지역 스코프(Local scope)가 있다.
- 전역 스코프 : 가장 최상위 스코프로, 해당 문서 내의 어디서든지 참조가 가능하다.
- 지역 스코프 : 해당 지역에서만 접근할 수 있는 스코프. 대표적인 예시로 함수 스코프(function scope)와 블록 스코프(block scope)가 있다.
- 함수 스코프 : 함수 몸체 내부에서만 유효한 스코프로, 자신이 선언된 스코프를 포함한 하위 스코프에서만 참조가 가능하다.
- 블록 스코프 : javascript 내에서 중괄호로 둘러싸인 영역을 블록이라고 한다. 이 블록 내에서만 유효한 스코프로, 선언된 스코프를 포함한 하위 스코프에서만 참조가 가능하다.
스코프 체인이란?
지역 스코프 내에 원하는 식별자가 선언되어있지 않을 경우 상위 스코프로 올라가서 유효한 해당 값을 찾는다. 이러한 스코프간의 상하관계를 스코프 체인(Scope Chain) 이라고 한다.
스코프 체인 예시
- handleChange라는 함수 안에는 유효한 aaa가 없다.
- 이러한 경우, 상위 스코프로 올라가서 aaa를 찾는다.
- 결과적으로 콘솔에는 '123'이라는 값이 출력된다.
'Javascript' 카테고리의 다른 글
[Javascript] sort() - 정렬 (오름차순/내림차순/문자열 등등) (0) | 2022.02.05 |
---|---|
[Javascript] toString() - 문자열로 변환 +α (0) | 2022.02.05 |
[Javascript] 이벤트 버블링 / Event-Bubbling (0) | 2022.02.05 |
[Javascript] new Array() / fill() - 배열 생성자 (0) | 2022.02.03 |
[Javascript] isNaN() / Number.isNaN() - NaN인지 판별 (0) | 2022.02.03 |