posts
FE
02-javascript
Scope

Scope

스코프란 변수나 매개변수에 접근할 수 있는 범위를 의미한다.

종류로는 크게 전역 스코프지역 스코프가 있으며,

지역 스코프는 함수 레벨 스코프블록 레벨 스코프로 구분할 수 있다.


var / let / const

JS에서 변수,상수를 선언하는 대표적인 키워드들이다.

var의 경우 함수 레벨 스코프를 가지고,

let과 const의 경우 블록 레벨 스코프를 가진다.


함수 레벨 스코프와 블록 레벨 스코프

함수 레벨 스코프는 변수의 유효범위가 특정 함수 단위이고,

블록 레벨 스코프는 변수의 유효범위가 특정 블록() 단위이다.


동적 스코프와 렉시컬 스코프

스코프들의 범위를 결정하는 규칙으로써,

먼저 동적 스코프는 런타임 중 함수의 호출에 의해서 스코프의 범위가 결정되고

렉시컬 스코프의 경우엔 변수나 함수를 작성한 위치에 기반하여 스코프의 범위가 결정되는 정적인 방식이다.


스코프 체인과 스코프 체이닝

하위 스코프들과 상위 스코프들의 연쇄적인 연결 관계를 스코프 체인이라고 하며

스코프 체인을 따라 검색하는 과정을 스코프 체이닝 이라고 한다.