자바스크립트 튜토리얼
스코프(Scope) 개념 이해와 종류 블록스코프 함수 스코프 참고자료 https://www.w3schools.com/js/default.asp https://developer.mozilla.org/ko/docs/Web/JavaScript https://www.geeksforgeeks.org/javascript/?ref=dhm https://roadmap.sh/javasc
idocleancode.tistory.com
렉시컬 스코프의 개념
- 렉시컬 스코프, 또는 정적 스코프는 프로그래밍 언어에서 변수의 범위를 결정하는 정책입니다. 렉시컬 스코프는 변수가 코드를 작성하는 시점에, 즉 코드가 작성된 위치에 따라 그 범위가 결정되는 것을 의미합니다.
렉시컬 스코프의 동작 원리
- 렉시컬 스코프는 코드가 실행되는 시점(runtime)이 아닌, 코드가 작성되는 시점(compile time)에 스코프가 결정됩니다. 즉 변수가 어디서 선언되었는지에 따라 그범위가 결정되며, 이는 코드를 작성하는 시점에 이미 결정됩니다.
즉. 중첩된 함수 내부 함수에서 어떻게하면 전역 변수가 참조 되는 이유는 렉시컬 스코프 원리와 스코프 체인 원리 인해서 변수가 참조가 된다.var globalVar = "I'm a global variable"; // 전역 변수 function outerFunction() { var outerVar = "I'm an outer variable"; // outerFunction의 지역 변수 function innerFunction() { var innerVar = "I'm an inner variable"; // innerFunction의 지역 변수 // innerFunction에서는 선언된 위치에 따라 자신의 스코프와 상위 스코프, 그리고 전역 스코프의 변수에 접근이 가능하다. console.log(innerVar); // "I'm an inner variable" console.log(outerVar); // "I'm an outer variable" console.log(globalVar); // "I'm a global variable" } innerFunction(); } outerFunction();
참고 자료
https://www.w3schools.com/js/default.asp
https://developer.mozilla.org/ko/docs/Web/JavaScript
https://www.geeksforgeeks.org/javascript/?ref=dhm
https://roadmap.sh/javascript