티스토리 뷰

반응형

함수 스코프란?

스코프(Scope)의 사전적 의미 : "범위"

변수 또는 함수의 유효 범위를 가르킴

스코프 변수 또는 함수의 유효 범위
지역 변수 스코프 영역에서 선언한 변수
스코프 영역에서만 사용할 수 있음
지역 함수 스코프 영역에서 선언한 함수를 가르킴
스코프 영역에서만 호출할 수 있음

 

 

전역 변수와 지역 변수의 개념과 차이

전역 변수 : 자바스크립트 어디에서든 사용할 수 있는 변수

지역 변수 : 함수 스코프 내에서만 사용할 수 있는 변수

 

기본형

var 변수명;		//전역 변수

function 함수명(){
	var 변수명;	//지역 변수
}

 

예제

var score = 10;

function myFnc(){
	var score = 50;
    
	alert(score);		//지역변수 50
}

myFnc();

alert(score);			//전역변수 10

 

 

전역 함수와 지역 함수의 차이

전역 함수 : 자바스크립트 어디에서든 사용할 수 있는 함수

지역 함수 : 함수 스코프 내에서만 사용할 수 있는 함수

 

기본형

//전역 함수
function 함수명1(){
	자바스크립트 코드;
}

function 함수명2(){
	//지역 함수
	function 함수명3(){
		자바스크립트 코드;
	}
}

 

예시

//전역 함수
function myFnc(){
	alert("전역 함수");
}

function outermyFnc(){
	//지역 함수
	function myFnc(){
		alert("지역 함수");
	}
    myFnc();	//지역 함수 호출
}

outermyFnc();
myFnc();		//전역 함수 호출

함수 스코프에서 선언된 함수는 지역 함수 => 함수 스코프 안에서만 호출가능

스코프 밖에서 myFnc() 함수를 호출하면 함수 스코프가 아닌 전역 함수가 실행되어 '전역 함수'라는 alert이 뜸

 

전역과 지역을 나누는 이유

프로젝트의 규모가 크면 여러명의 개발자가 투입

=> 같은 이름의 전역 변수나 전역 함수를 사용하면 충돌 발생

=> 라이브러리나 플러그인 변수 이름과 같은 경우 충돌 발생

 

즉시 실행 함수

지역 함수를 사용해 함수를 선언했다면 충돌을 피할 수 있음.

즉시 실행 함수는 지역 함수 선언에 사용하면 효과적.

 

기본형

(function (){
	자바스크립트 코드;
}());

(function(){
	var 변수명;		//지역 변수
    
    function 함수명(){
    	자바스크립트 코드;		//지역 함수
    }

}());
반응형
댓글