Notice
Recent Posts
Recent Comments
Link
«   2026/07   »
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
more
Archives
Today
Total
관리 메뉴

어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

23.04.07 / 콜백(callback) & 클로저(closure) & 기타 함수 본문

Front - end/JS

23.04.07 / 콜백(callback) & 클로저(closure) & 기타 함수

낫쏘링 2023. 4. 7. 16:44
728x90

[ 콜백 함수 ]

  • 다른 함수의 인수로 들어가는 함수
  • 왜 쓰는지? 함수를 순차적으로 실행하고 싶을 때

 

[ 내부 함수 ]

  • 함수 내부에서 다른 함수 선언 / 다른 함수 호출 가능
var myFn = function(){
	console.log('함수 호출');
	var subFn = function(){ // 함수 안에 또 다른 함수 선언
		console.log('내부 함수 호출');
	}
	subFn(); // 함수 내부에서 다른 함수 호출
};
myFn();

 

[ 재귀 함수 ]

  • 선언된 함수 내부에 자기 자신을 호출하는 방법 (반복문 대신 사용할 수 있어서 어떻게 보면 편리할 수 있음)
  • 하지만, 재귀호출은 꼭 필요한 상황이 아니면 지양한다. (프로그램 무한루프 걸릴 수 있음...)
var myFn = function(n){
	console.log('함수 호출');
	if(n == 10) return ;
	myFn(n + 1); // 내부에 자기 자신 호출
};
myFn(0);

 

 

콜백 , 아규먼트, 고차 함수 , 내부함수 , 재귀함수 , 리턴 , 배열안에 배열객체 존재 , 객체안에 배열객체 존재  정리해야함

화살표 함수 추가 정리 해야함 피곤..........

 

 

[ 즉시실행함수 ]

즉시실행함수 IIFE(Immediately Invoked Function Expression)
소괄호()로 감싸진 익명함수(Anonymous Function)

(function () { statements })();

※ 선언과 동시에 호출해서 즉시실행함수 ※
* 매개변수 age를 가진 함수 선언 -> 바로 인수 20을 넣어서 호출
(function (age) { statements })(20);

    - 전역 스코프에 불필요한 변수를 추가해서 오염시키는 것을 방지한다.
    - 즉시실행함수 내부로 다른 변수들이 접근하는 것을 방지한다. (private 함수로 사용 가능)

* 외부에서 접근 불가능

(function () {
    let name = '홍길동';
    console.log(name);  // 홍길동 출력
})();

console.log(name); // 아무것도 출력되지 않는다.



    - 선언과 동시에 호출되기 때문에 재사용이 불가능하다. (단 한 번 만 사용하는 함수가 필요한 경우 사용)

for (var i = 1; i < 11; i++) { 
    (function (i) {
        setTimeout(function () {
            console.log(i);
        }, 1000 * i); 
    })(i); 
}


<-----------선언----------->
(function (i) { statements })(i);
                             <--호출-->
                             
  * i를 매개변수로 갖는 익명함수를 선언하고 인수 값으로 i를 넣어서 바로 호출
* 즉시실행함수를 변수에 저장하면 return 값으로 출력 가능
* 단, 함수 자체는 변수에 담기지 않는다.

let result = (function () {
    let name = '홍길동';
    return name;
})();

console.log(result); // 홍길동 출력



let result = function () {
    let name = '홍길동';
    return name;
};

console.log(result); 

/** 일반 익명함수의 경우 함수가 출력된다.
ƒ () {
          let name = '홍길동';
          return name;
     } **/



 

 

728x90