Pillar 1: Scope and Closure
스코프는 서로 중첩을 이루는데, 스코프 안에서는 변수 사용에 대한 룰이 있다.
- 하나의 스코프 영역에서는, 자신(스코프)의 영역에 선언한 변수와 상위 혹은 외부 스코프의 변수들에 참조할 수 있다.
- 하위 혹은 내부 스코프의 변수에는 참조할 수 없다.
이러한 특징을 lexical scope 라고 한다. 그리고 스코프 단위는 프로그램이 파싱 될 때 결정된다. 하지만 해당 특징을 가지는 대부분의 언어에 비해 몇 가지 다른 점이 있어서 lexical 적인 특성이 받아들여지지 않기도 하는데 그것은 다음과 같다.
- 호이스팅
var
키워드로 선언된 변수 :function
단위로 스코프를 가진다.
하지만 이런 점은 그저 JS 언어의 특성 상 몇가지 독특한 부분이기 때문에 잘 살펴 보고 사용할 필요가 있다.
클로저 또한 lexical scope 의 개념에 기반한 매커니즘으로 분류할 수 있다. 함수가 외부의 변수를 참조하는 형식을 가진 채로 다른 스코프에서 실행되었을 때, 기존 스코프의 변수들에 대한 접근을 유지하고 있다는 것이 그 예이다.
'Development' 카테고리의 다른 글
[21.01.06] YDKJSY - The Scope Chain (0) | 2024.01.07 |
---|---|
[21.01.02] YDKJSY - What's the Scope? (0) | 2024.01.07 |
[20.12.27] YDKJSY - Digging to the Roots of JS (1) | 2024.01.07 |
[20.12.24] 객관적인 코드 리뷰를 위해 (0) | 2024.01.07 |
[20.12.24] YDKJSY - Surveying JS (0) | 2024.01.07 |