VSCode_basic. function3

dwanGim·2022년 3월 7일
0

vscode_basic

목록 보기
24/55

scope

JS에도 힙, 스택, 코드 영역이 존재합니다.

고로 역시 지역변수와 전역변수 개념이 존재하며

지역변수와 전역변수의 개념과 기능 또한 다른 언어와

대체로 유사하게 적용됩니다.

        function theFnc() {
            var num;
            num = 30;
        }

        theFnc();
        console.log(num);
        

theFnc()함수 안에서 var num 을 선언했습니다.

그리고 그 theFnc()지역 밖에서 num을 호출해보았지만

콘솔엔 아무것도 찍히지 않았습니다.

또한 JS 는 따로 메인메서드가 존재하지 않습니다.

script 태그를 위에서 아래로 순차적으로

실행하기 때문에 중괄호 내부에 속하지 않으면서

script 태그 내부에 존재하는 변수가 있을 수 있습니다.

script 영역이 모든 영역의 상위 영역이므로

이러한 script 영역에 직접 속한 변수를 전부

전역변수로 간주합니다.

중괄호 내부에 있지만 않으면

전역변수가 되는 겁니다.

<script>

var num;

        function theFnc() {
            num = 30;
        
        }
        theFnc();
        console.log(num);
        
</script>

var num을 전역변수로 선언한 후

theFnc()함수를 호출해서 30이란 수를 저장했습니다.

함수는 구역이 종료되며 script 구역에서 삭제되었지만

num에 저장된 30은 그대로 출력되는 것을 확인 할 수 있습니다.

duplicate var

이렇듯 전역변수와 지역변수는

같은 변수명으로 존재할 수 있으나

호출은 별개로 진행됩니다.

변수명을 전역, 지역별로 중복해서 쓰는 것은

권장하지 않으나 혹시 불가피하게 사용할 수도 있기 때문에.

이러한 개념을 잘 이해해두셔야 하겠습니다.

같은 이름의 변수를 전역과 지역에 선언하여

호출할 때 어떤 변수가 출력되는지

코드를 통해 확인해봅시다.

    <script>
    
        var i = 10; // 전역변수 i
        var num = 20; // 전역변수 num

        function theTest(){
            var num = i + 200; // theTest 지역변수 num
            alert(num); // 자기 지역 우선 호출 ==> 210이 출력
        }

        theTest(); // 지역이 생성되었다가 소멸함
        // 호출해야지 지역이 생성되는 겁니다.

        function theFnc() {
            document.write(num); // 전역 변수 호출 ==> 20이 출력
        }

        theFnc(); // 지역 생성되었다가 소멸


    </script>

지역 내에서 호출을 하면 자신의 지역 내에 선언되어 있는

num 변수가 우선 호출되는 것을 확인할 수 있었습니다.

여러분이 교실에서 친구 민수를 부른다고

전국에 있는 민수가 호출되지 않고

옆 교실이나 옆나라에 있는 민수가 호출되지 않듯이

지역 내에서는 지역내의 변수가 우선권을 가지고 있습니다.

이러한 속성을 잘 체득해둡시다.

일단은 여기까지 입니다.

profile
배울 게 참 많네요.

0개의 댓글

관련 채용 정보