본문 바로가기

국비필기노트/HTML & CSS & JS

JS_함수의 유효범위(Scope)

Scope란, 우리가 변수 혹은 함수를 선언하게 될 때 해당 변수 또는 함수가 유효한 범위를 의미한다. 

즉, 해당하는 변수가 유효하게 동작할 수 있는 범위를 이야기한다. 

 

 

1) Global (전역) Scope: 코드의 모든 범위에서 사용이 가능하다.

 

 

1
2
3
4
5
6
7
8
9
var vscope = 'global';
 
function fscope(){
    alert(vscope);  
}
 
 
fscope(); //global
 
cs

 

 

2) Function (함수) Scope: 유효성의 범위를 벗어나면 사용불가능

 

 

1
2
3
4
5
6
7
8
9
10
var vscope = 'global';
 
function fscope(){
    var lv = 'local val';
    alert(lv);  
}
 
 
fscope(); //local val
alert(lv); //오류
cs

 

  • 전역변수: vscope - global
  • 지역변수: lv - local val

fscope() 함수 안에서 생성된 변수이기때문에 함수로 호출되는 것이 아닌 기능 그 자체를 외부에서 사용하려고하면 오류가 나온다.

 

 

3) Block (블록) Scope: 지역변수와 전역변수가 동시에 정의되어있으면 지역변수를 우선시한다. 

 

 

1
2
3
4
5
6
7
8
9
10
var vscope = 'global';
 
function fscope(){
    var vscope = 'local';
    alert('함수안' + vscope);  
}
 
 
fscope(); //global
 
cs
 

 

  • 전역변수: vscope - global
  • 지역변수: vscope - local val

전역과 지역에 동일한 명의 변수가 동시에 정의되어있다면 지역변수가 우선시되어 global이 출력된다.

 

1
2
3
4
5
6
7
8
9
10
var vscope = 'global';
 
function fscope(){
    vscope = 'local' ;
    alert('함수안'+vscope);
}
 
fscope(); //함수안 local
alert('함수밖' + vscope);//함수밖 local
 
cs

 

  • 전역변수: vscope - global
  • 지역변수: vscope - local val

단, 여기서 alert() 함수를 통해 vscope를 불러보았다. 결과는 "함수밖 local"이 출력된다. 이는 "함수의 재할당"으로 이해한다.

'국비필기노트 > HTML & CSS & JS' 카테고리의 다른 글

JS_주요 내장 함수  (0) 2022.05.10
JS_배열  (0) 2022.05.10
JS_함수(function) 호출방법  (0) 2022.05.10
JS_변수의 종류  (0) 2022.05.10
HTML_기본 태그  (0) 2022.05.03