FrontEngineer JungBam

스코프, 섀도잉 본문

자바스크립트 개념

스코프, 섀도잉

정밤톨 2022. 11. 12. 19:41

스코프

자바스크립트에서 선언된 변수가 존재하는 범위를 이야기함.

(전역 스코프 - 렉시컬 스코프)

 

섀도잉

{

   ①

   {

      ②

   }

}

위와 같이 단락이 나뉘어졌을 때 ①의 렉시컬 스코프와 ②의 렉시컬 스코프가 존재하는데 ②의 렉시컬스코프에서 어떠한 변수를 호출하면 자바스크립트는 ②의 렉시컬 스코프에서 해당 변수를 찾은 뒤에 없으면 ①의 스코프에서 해당 변수를 찾는다.

그렇다면 ①과 ②에서 각각 값이 주어진 변수가 있다면 ②에서 그 변수를 부른다면 당연히 ②의 렉시컬 스코프에서 할당된 값이 불려지게 되는데 이렇게 내부 변수가 위부 변수를 가리는 현상을 섀도잉이라고 한다. 

변수의 선언으로 인해 충돌하는 것을 해결하는 방법으로 책에서 제시한 방법은 크게 한가지임.
결국에는 블록 스코프, 즉 나만의 렉시컬 스코프를 만들어서 해결하는 방법을 제시함.

1. {} 블록스코프를 통해 그 변수가 존재하는 범위를 지정해서 그 안에서 로직을 구현
2. 즉시 호출 함수를 통해 문제 해결
반응형
Comments