728x90
반응형
728x90
반응형

아래의 문제는 자바스크립트에서 유효범위인 전역변수와 지역변수에 대해 아는 가에 관한 문제인데요.

유효범위(Scope)는 변수의 수명을 의미합니다.

먼저 고민해서 풀어보시고 난 후에 정답을 확인하면 좋을 것 같아요!


<script type="text/javascript">
$(document).ready(function(){
    function A(){
        console.log(myVar);
        var myVar = 1;
        console.log(myVar);
			
        function B(){
            console.log(myVar);
            myVar = 2;
            console.log(myVar);
				
            var myVar = 3;
            console.log(myVar);
        }
        B();
    }
    var myVar = 4;
    A();
		
});
</script>










정답은 다음과 같습니다!

1번째 값과 3번 째 값이 undefined가 된 이유는 지역 변수가 적용 되는 범위 내에서 변수가 선언되기 전까지의 값은 주지 않았기 때문에 undefined가 됩니다. 이름이 같은 전역 변수가 있다해도 함수내에서 무시됩니다. B() 함수내 값을 할당함으로 인해 변수를 선언한 효과가 있습니다.

*함수의 중괄호 안에 선언된 변수만이 함수 안의 지역변수이므로 for, if 중괄호에 선언된 함수는 지역변수로의 의미를 갖지 않습니다.


728x90
반응형
728x90
반응형

+ Recent posts