js

js deep dive [13 scope]

mallang_col 2022. 10. 25. 14:15

유효 범위

변수의 유효 범위 와 함수의 유효 범위를 따로 생각 해야 한다.

어떤 공간에 변수를 선언하면 지역 스코프를 갖는 지역 변수를 만들게 된다.

이때 지역 변수는 선언된 부분과 선언된 하위 부분에서 유효 하다.

스코프에서 알아야 할 가장 중요한 부분은

case 1 :

const print = "test";

function test() {
    const print = "value"; 
    function out() { 
        console.log(print); 
    }
    out();
}`  
function. out() {
    console.log(print);
}

case 2 :

const print = "test";

function test() { 
    const print = "value"; 
    out(); 
} 
function. out() { 
    console.log(print);
}

case 1 번과 case2 번의 결과를 살펴보면 우리는 확실히 다름을 알 수 있다.
함수의 호출을 했을때 자식단에 있는 함수를 호출하게 된다면 자식단에 있는 값을 기준으로 확인하고,
실행이 불가능하다면 부모단에 있는 녀석을 기준으로 확인 하는 듯 하다.

여기서 1 번의 경우
test();를 호출하게 된다면, value 가 출력되고
out() 을 호출하게 된다면, test 가 출력되지만.
2번의 경우
둘다 test가 출력되는것을 통해서
지역 에 선언된것이 어떻게 호출 하느냐 에 따라서 출력이 달라짐을 확인 할 수 있다.
이를 통해 나중에 사용할 this 에서 조금더 공부를 해야할 필요성을 확인 할 수 있었다.