짹뚜 스튜디오

IIFE (Immediately Invoked Function Expression) 본문

개발 공부/javascript

IIFE (Immediately Invoked Function Expression)

짹뚜 2021. 12. 22. 15:08

해당 글은 모든 자바스크립트 개발자가 알아야 하는 33가지 개념에서 여덟 번째인 IIFE, modules and namespace 항목을 공부하면서 간단하게 작성한 글이다.

 

IIFE란 선언되자마자 호출되는 함수를 말한다.

(function func(){
	console.log("hello");
})();

ES5에서 자주 사용되던 패턴인데 그 이유는 Function Scope만 존재했기 때문이다. 함수 내에 존재하는 변수들 외에는 모두 전역 스코프에 선언이 되어서 실수로 다른 곳에서 변수를 변경하는 일이 일어나는 것을 방지하기 위해 IIFE를 사용했다.

(function func(){
	var i = 10;
})();

console.log(i); //Reference Error;

ES6부터는 Block Scope가 있기 때문에 IIFE를 사용하지 않고도 전역 변수에 선언되는 것을 막을 수 있다.

{
	let i = 1;
}

console.log(i); //Reference Error;

주로 IIFE는 여러 줄의 Statement로 값을 도출하고 싶을 때 Arrow 함수와 함께 사용된다.

const test = (() => {
  let a = 10;
  let b = '10';
  if(a === b){
    return true;
  } else {
  	return false;
  }    
})();

 

'개발 공부 > javascript' 카테고리의 다른 글

Event Loop (이벤트 루프)  (0) 2021.12.24
모듈  (0) 2021.12.22
Expression vs Statement  (0) 2021.12.21
Scope (스코프)  (0) 2021.12.20
== vs === vs typeof  (0) 2021.12.20
Comments