자바스크립트 즉시 실행 함수

boyeonJ·2023년 6월 26일
0

JavaScript Basic

목록 보기
9/24
post-thumbnail

즉시 실행 함수

즉시 실행 함수는 호출되는 즉시 실행되며 단 한번만 호출되어 다시 호출할 수 없다. 즉시 실행 함수 내에 코드를 모아 두면 혹시 있을 수 도 있는 변수나 함수 이름의 충돌을 방지할 수 있다.

  • 그룹 연산자(소괄호)안에서 정의 및 호출을 한다.
  • 익명 함수를 사용한다.

익명 함수를 사용하는 이유는?

: 기명 함수를 써도 외부에서 호출 불가능
-> 그룹 연산자내에서는 함수 선언문이 아닌 리터럴로 평가되기 때문에

그룹으로 묶는 이유는?

리터럴로 평가해서 함수 객체를 생성 후 호출연산자를 사용하기 위해서
*함수선언문은 호출 연산자 사용시 에러 발생. -> 함수 호출 연산자가 아닌 그룹 연산자로 해석되며 피연자가 없다는 에러 발생


다양한 형태의 즉시실행 함수

(function () {...}());
(function () {...})();
//연산자를 사용하여 선언문이 아닌 리터럴(표현식)으로 평가
!function () {...}(); 
+function () {...}(); 

값 반환과 인수 전달

// return 값 변수에 할당
let res = (function(){
	let a =3;
  	let b = 5;
  	return a+b;
}());
console.log(res); //8

//인수전달
let lFun = (function(a,b){
	return a*b;
}(3,5));
console.log(res); //15

즉시 실행 함수의 이점

자바스크립트에서 함수 내부는 해당 함수의 지역 스코프로 간주됩니다. 따라서 즉시 실행 함수를 사용하면 함수 내부에 정의된 변수와 함수는 외부 스코프에서 접근할 수 없습니다. 이는 변수와 함수 이름의 충돌을 방지하는 데 도움이 됩니다.

또한, 전역 스코프에서 정의된 함수는 전역 함수로 간주됩니다. 전역 함수는 다른 코드에서 접근할 수 있는 함수이므로, 전역 스코프에 변수나 함수를 추가하는 것은 전역 네임스페이스를 오염시킬 수 있습니다. 즉시 실행 함수를 사용하면 변수와 함수를 캡슐화하여 전역 스코프를 깨뜨리지 않고 사용할 수 있습니다.

따라서 즉시 실행 함수를 사용하면 변수와 함수 이름의 충돌을 방지하고 전역 스코프를 깨뜨리지 않으면서 코드를 모듈화할 수 있습니다.

0개의 댓글