오늘은 렉시컬 스코프에 대해서 이야기 해보려합니다.
(오늘은 그림이 없다는 점!)
함수를 어디서 호출하는지가 아니라 어디에 선언하였는지에 따라 결정되는 것을 말합니다.
함수를 어디서 선언하였는지에 따라 상위 스코프를 결정한다는 뜻입니다.
여기서 가장 중요한 점은 함수의 호출이 아니라 **함수의 선언에 따라 결정된다는 점입니다.
그리고 렉시컬 스코프를 정적 스코프(Static Scope) 라고 부르기도 합니다.
예시와 함께 알아보도록 하겠습니다.
처음에 이 함수를 보았을때는 '엥 너무 쉬운데? 당연히 10이랑 1아냐?' 라고 호언장담하며 말했지만 네..
그림과 같이 1과 1이 출력됬습니다
또 다르게는
위와 같은 상황에서 second함수에서 참조하는 x 변수는 second함수의 상위 스코프가 무엇인지에 따라 결정됩니다.
따라서, 상위 스코프가 무엇인지 알려면 second 함수가 어디에 선언되었는지 봐야되는데, 위 코드에서는 second 함수가 전역에 선언되었으므로 상위 스코프는 전역 스코프가 됩니다.
그래서 second 함수 내의 x 변수는 전역에 선언된 x 변수를 참조하게 됩니다.
자 오늘은 렉시컬 함수에 대해 알아보았는데요 뭔가 글로만 보면 이해하기 어렵고 그렇네요!
제가 생각한 렉시컬 스코프를 요약해서 본다면
함수를 어디에 선언하였는지에 따라 결과값이 달라지고, 상위 스코프에 따라 결과값도 달라지는 것 같습니다.
이상으로 오늘 여기까지 알아보았고 제가 렉시컬 스코프에 대해자세하게 알게되면 한번더 다루도록 하겠습니다!
감사합니다!
그럼 20000!
저도 출력결과가 10과 1인 줄 알고 한참동안 머물러 있었네요 ㅎㅎ 좋은 예시 감사합니다