Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Factory Functions
- http 모듈
- IP
- CLI
- #유니티
- react
- solidity
- Relational Database
- javascript
- ES6 모듈
- Hybrid Blockchain
- SQL
- 3티어 아키텍처
- UTXO
- Private Blockchain
- #1인게임개발
- npm
- Factory 함수
- short-circuiting
- 텍스트 가운데 정렬
- NoSQL
- 2티어 아키텍처
- caverjs
- skip ci
- 명시도
- 안정 정렬
- 블록체인
- 불안정 정렬
- CSS Specificity
- CSS
Archives
- Today
- Total
짹뚜 스튜디오
IIFE (Immediately Invoked Function Expression) 본문
해당 글은 모든 자바스크립트 개발자가 알아야 하는 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