공부 및 일상기록

[Javascript] 스코프란? 스코프 체인이란? 본문

개발/Javascript

[Javascript] 스코프란? 스코프 체인이란?

낚시하고싶어요 2023. 1. 6. 00:45

스코프는 간단히 말하면 변수에 접근할 수 있는 범위 이다.

자바스크립트에서는 크게 두가지 타입의 스코프가 있다.

전역(global)과 지역(local)이다.

 

전역스코프는 말 그대로 전역에 선언되어 있어 어느곳에서든지 해당 변수에 접근할 수 있다는 의미이다. 지역스코프는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에서는 접근할 수 없다.

 

자바스크립트에서 함수를 선언하면 함수를 선언할 때마다 새로운 스코프를 생성하게 된다. 이는 함수스코프로 함수 스코프가 바로 지역스코프의 예라고 할 수 있다.

 

스코프 체인이란?

변수나 함수에 접근할 때 실행컨텍스트에 의해 스코프를 통해 접근하게 된다. 스코프는 스택에 후입선출 구조로 쌓이게 되는데 가장 위에 존재하는 스코프가 먼저 실행되게 된다. 따라서 해당 스코프에서 식별자를 찾게 되면 먼저 가장 위에 있는 스코프에서 찾고, 존재하지 않으면 다시 상위 스코프, 또 존재하지 않으면 또 상위스코프로 찾아가는 등 식별자를 찾을때 까지 모든 스코프를 찾아나간다. 이 현상을 스코프체인이라고 하며 스코프가 중첩되어있는 모든 상황에서 발생되게 된다.