728x90
정의되자마자 즉시 실행되는 함수 입니다.
소괄호 () 로 함수를 감싸서 실행하는 문법을 사용합니다.
ex)
(function (){
console.log("안녕하세요");
})();
(()=>{
console.log("화살표 함수도 가능합니다");
})();
기명함수로 사용할 수 있지만 재사용을 할 수 없기 때문에 익명함수로 사용합니다.
Why Use?
- 필요없는 전역 변수 생성을 줄일 수 있습니다.
즉시 실행 함수를 선언 시 내부 변수가 전역으로 저장되지 않아 전역 스코프의 오염을 줄일 수 있습니다.
2. 보호 가능한 변수를 만들 수 있습니다.
즉시 실행 함수는 외부에서 접근할 수 없는 자체적 스코프를 가져 외부 로부터 변수를 보호할 수 있습니다.
How Use?
초기화
ex)
let isAdult;
((age)=>{
let reset = age;
if (age >= 20) {
isAdult = true;
} else {
isAdult = false;
}
})(20);
console.log(isAdult); // true
console.log(currentAge); // Uncaught ReferenceError: currentAge is not defined
전역에서 선언된 값이 저장되어 않고, 초기화 되었습니다.
라이브러리 전역 변수의 충돌 방지
jQuery나 Prototype 라이브러리는 $ 라는 전역 변수를 사용하는데 같이 사용할 때 충돌을 방지 할 수 있습니다.
ex)
(function ($) {
// $ 는 jQuery object
})(jQuery);
728x90
'FrontEnd > JavaScript' 카테고리의 다른 글
do while (0) | 2023.01.02 |
---|---|
중첩 함수 (0) | 2022.12.05 |
함수 선언과 변수 선언의 차이 (0) | 2022.12.05 |
함수를 사용하는 이유 (0) | 2022.12.05 |
구조 분해 할당 (0) | 2022.11.29 |