study

패스트캠퍼스 챌린지 25일차

swimKind 2022. 2. 17. 09:46

라이프 사이클과 스코프

 

스코프는 하나의 그룹핑 되어있는 영역을 말하며 라이프 사이클은 어떠한 영역 안에서 실행되고 그 영역을 벗어나게 되면 삭제되는 형태를 말한다. 스코프는 전역 스코프, 블록 스코프, 함수 등이 있으며 함수 또한 fucntion(){} 형태의 스코프 안에서 동작하고 함수 실행이 끝나고 다른 영역으로 넘어갔을 때 사라지게 된다.

 

스코프, 예를 들어, 함수가 여러개 있다고해서 메모리에 모든 함수가 등록되는 것이 아니다. 선언되어 있는 모든 스코프가 메모리에 올라갈 수는 없다. 메모리는 한정 되어있는 자원이기 때문에 효율적으로 사용할 수 있어야 한다. 스코프는 그러한 것들을 유동적으로 이용하고 있는 셈이다.

 

let myname = 'kim'; // 전역 스코프

function foo() { 
    let x = 10;

    console.log(myname);
    console.log(x);

    bar();
    zoo();

    function bar(){
        let y = 10;

        console.log(x);
        console.log(myname);
    } // foo 함수 스코프

    const zoo = function(){

    }

    if(x ===10){ // foo 스코프의 변수 x
        let x = 100; // foo 스코프 내의 if문 블록 안의 변수 x

        console.log(x);
    } // foo 함수 스코프 

    bar();
} // 전역 스코프

foo();
console.log(x);

 

스코프는 처음 진입될 때 생성된다. foo 함수로 진입 할 때, myname이라는 변수는 전역 스코프에 있으며, foo함수 내의 x라는 변수는 foo 함수의 스코프안에서 저장된다. 따라서 foo 함수에서는 myname 변수를 사용할 수 있지만 foo 함수가 실행되는 부분(전역 스코프)에서는 foo함수 안의 x를 사용할 수 없다. 스코프에서는 중첩이 일어나기 때문에 foo 함수 안에 bar 함수를 선언하면 bar 함수는 전역스코프와 foo함수 스코프 안에 있는 변수들을 사용할 수 있다. 

 

또한 함수 선언문(function xxx(){})으로 작성된 함수는 호이스팅으로 인해 실행보다 선언이 코드 아래에 있어도 사용할 수 있지만 함수 표현식(var xxx = function(){})으로 작성된 함수는 꼭 함수가 선언되고 나서 실행되어야 한다.

 

 

 

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #김민태의프론트엔드아카데미:제1강JavaScript&TypeScriptEssential