본문 바로가기
js/개발

js 즉시실행함수

by 냉면돈가스 2022. 5. 31.

즉시실행함수란 정의되자마자 실행해버리는 함수를 말함.

function shouting() {
	console.log(str)
}
shouting('으악'); // 으악

 

1. 함수를 선언하고,

2. 바로 호출

 

위의 기존코드를 즉시실행함수로 바꾸면 아래와 같음

(function shouting(str) {
    console.log(str)
})('으악');

const shouting = function (str) {
    console.log(str)
}('으악');

const shouting2 = ((str) => {
    console.log(str)
})('으악');

위 코드를 실행시

>> 으악
>> 으악
>> 으악

함수들이 바로 실행됐단 걸 확인가능함

 

 

그런데 신기한 점이 하나 있는데,

shouting함수가 두 번 선언이 되어있다.

그 이유는 아래의 특징때문인데

즉시실행함수는 실행된 후 바로 반환되어 재사용 할 수 없다.

그래서 한 번 쓰고 말 함수라면 즉시실행함수로 작성하여 불필요한 변수 생성을 막을 수 있음.

 

확인해보기

console.log(shouting);  //undefined
console.log(shouting2); //undefined
// console.log(shouting3) //not defined > error

 

함수는 바로 반환되어 undefined로 변수에 저장이 된 모습

 

질문) 그러면 즉시실행함수를 변수에 넣으면 안되겠네요

>> 꼭 그렇진 않음

 

위의 shouting 함수가 반환값이 없는 void타입이라 그렇지

반환값이 있다면 유의미함

//void 타입 함수가 아니라면?
const numResult1 = ((num) => {
    return 3 + 2
})();

console.log(numResult1); >> 5

 

 

 

 

'js > 개발' 카테고리의 다른 글

js Symbol 데이터 타입  (3) 2022.10.17
js set 데이터 타입  (0) 2022.10.17
js ajax로 비동기 통신하기  (0) 2022.02.04
js 배열함수  (0) 2022.01.17
js console 종류  (0) 2022.01.15

댓글