scope 연습문제

이재진·2020년 9월 20일
0

Javascript

목록 보기
3/3
1 var x = 30;
2
3 function get () {
4  return x; 
5  }
6
7 function set (value) {
8  x = value; 
9 }
10
11 set(10);
12 var result = get(20);
13
14 console.log(result)

[Line 1] 변수 x를 선언하고 30이라는 숫자값을 해당 변수에 할당합니다.
[Line 3-5] 함수 get을 생성합니다. (get이라는 단어는 이제 이 함수를 가르키게 됩니다.)
[Line 7-9] 함수 set을 생성합니다. 매개변수로 value가 사용. (set이라는 단어는 이제 이 함수를 가르키게 됩니다.)
[Line 11] 함수 set을 실행합니다.
[Line 8] set 함수 내부 코드가 실행됩니다.
[Line 8]
set 함수의 value 매개변수에 인자로 10을 할당합니다.
선언되어 있지 않은 x에 value 값을 할당하기 위해 x라는 변수를 찾습니다.
set 함수 Scope 내부에서 먼저 x라는 변수를 찾습니다만, x를 찾지 못합니다.
set 함수 Scope에서 한 단계 바깥 Scope로 나가서 x라는 변수를 찾습니다.
Line 1에서 global scope 에서 x라는 변수가 선언된 것을 찾고, 선언된 X를 이용하여 value 값을 할당합니다. 이제 x에는 value 매개변수에 들어 있던 10을 할당 할 수 있습니다.
그리고 global scope의 전역변수 x는 10으로 재할당 되었습니다.
[Line 8] set 함수의 실행이 종료됩니다.
[Line 11] set 함수 실행문의 종료됩니다.
[Line 12] get 함수를 실행합니다.
[Line 4] x의 값을 리턴하기 위해 x라는 변수의 값을 찾습니다.
get 함수 Scope 내부에서 먼저 x라는 변수를 찾습니다만, x를 찾지 못합니다.
get 함수 Scope에서 한 단계 바깥 Scope로 나가서 x라는 변수를 찾습니다.
Line 1에서 global scope 에서 x라는 변수가 선언된 것을 찾고, 그에 해당하는 값인 10을 사용할 수 있습니다.
x의 값인 10을 리턴하게 됩니다.
[Line 4] get 함수의 실행이 종료됩니다.
[Line 12] get 함수 실행문이 종료되며 리턴값인 10을 result 변수에 할당합니다.
[Line 14] result의 값인 10을 출력하게 됩니다.

profile
개발블로그

0개의 댓글