-
[Javascript] Scope Chain 알아보기코딩공부 2022. 5. 16. 09:38728x90반응형
const x = "x"; // <---- 변수 x (중복으로 보이지만 아래에서 알아보자.) function c() { const y = "y"; console.log("c"); } function a() { const x = "xx"; // <---- 변수 x (중복으로 보이지만 아래에서 알아보자.) console.log("a"); function b() { const z = "z"; console.log("b"); c(); } b(); } a(); // a,b,c c(); // c
Scope Chain은 최상단부터 선언을 정리해보면 쉽게 알아볼 수 있습니다.
선언문 정리
순서 선언 선언 선언 Anonymous const x function c function a function c const y function a const x function b function b const z 퀴즈
function c에서 b()를 하면 어떻게 될까요?
과정 알아보기
질의 : function c 안에 function b의 선언이 있나요?
결과 : 없다.
이동 : function c의 부모로 이동 (Anonymous)
질의 : Anonymous에 function b의 선언이 있나요?
결과 : 없다.
최종 결과 : 호출할 수 없다.
Error 메시지 : b is not defined
변수 x는 중복일까?
위에서 작성했던 선언문 정리를 보게 되면 중복인지 아닌지 알 수 있다.
같은 scop에 중복이 있다면 오류가 발생하지만 다른 scope에 똑같은 변수가 있어도 별개이기 때문에 오류가 발생하지 않는다.
728x90반응형'코딩공부' 카테고리의 다른 글
[AUIGrid] XSS 취약점 발견 및 해결 과정 (0) 2024.09.21 [Oracle] SQL Function 복습 (0) 2023.02.26 [Javascript] Array.reduce 문법 (0) 2022.05.13 Javascript arguments (0) 2022.04.28 [javascript] let과 var의 차이 그리고 호이스팅이란? (0) 2022.04.27