[Javascript] 자바스크립트 즉시실행 함수(IIFE)
- 웹 개발/Javascript
- 2020. 3. 3. 23:10
즉시실행 함수(Immediately Invoked Function Expression)란 정의되자마자 즉각적으로 실행되는 자바스크립트 함수(Function) 중 하나입니다.
(function () {
//변수 선언
//변수 처리
//특정 로직 등 구현
})();
즉시실행 함수는 두가지부분으로 이루어져있습니다.
첫째, 괄호로 둘러쌓인 익명함수부분 스코프기반의 자바스크립트에서 전역스코프로 자바스크립트의 불필요한 변수를 만들지 않고 마찬가지로 안쪽으로 불필요한 변수들이 선언되는 것을 방지할 수 있도록 합니다. 저는 이걸보고 라이브러리 모듈 같다고 생각했습니다.
둘째, 함수를 실행할때 사용되는 ()괄호 입니다. 자바스크립트 엔진이 문법을 읽고 선언된 함수를 즉각적으로 실행하게 됩니다.
즉시실행함수 예제
외부에서의 접근 불가
<script>
(function () {
// 즉시실행함수의 내부에서 정의된 변수는 외부 범위에서 접근이 불가능하다.
var str = '코딩하는흑구';
})();
console.log(str); // throws "Uncaught ReferenceError: str is not defined"
</script>
즉시실행 함수를 변수에 할당할 때, 함수가 담기는 것이 아닌 Return 값만 담게된다.
<script>
var result = (function () {
var name = '코딩하는흑구';
return name;
})();
// 즉시 결과를 생성한다.
console.log(result); // '코딩하는흑구'
</script>
'웹 개발 > Javascript' 카테고리의 다른 글
[Javascript] var와 let const의 차이점 / ES6(ECMA-2015) (0) | 2020.03.21 |
---|---|
[Javascript] 자바스크립트 생성자 함수(Object.prototype.constructor) (0) | 2020.03.04 |
[Javascript] 자바스크립트에서 매개변수(parameter) 할당 (0) | 2019.06.16 |
[Javascript] 자바스크립트 스코프와 호이스팅 (0) | 2019.05.28 |
[Javascript] 자바스크립트, DOM 태그 검색 방식( id, class, name, 태그명) (0) | 2019.04.18 |