어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨
23.04.07 / 콜백(callback) & 클로저(closure) & 기타 함수 본문
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
'Front - end > JS' 카테고리의 다른 글
| 23.04.13 / 내장객체 (0) | 2023.04.13 |
|---|---|
| 23.04.09 / 배열, 객체, 함수, 생성자 함수가 헷갈린다... (0) | 2023.04.09 |
| 23.03.30 / 함수 function (0) | 2023.03.30 |
| 23.03.24 / 객체 타입, this, 매개변수와 인자 (0) | 2023.03.24 |
| 23.03.23 / 배열 (자바와 비교해서..) (0) | 2023.03.23 |