일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 조건문
- 캡슐화 (encapsulation)
- 참조자료형
- async/await
- string
- 화살표함수 기본 개념
- 재귀적으로 생각하기
- class
- flex-direction
- 추상화 (abstraction)
- props비구조화 할당
- justfiy-content
- Promise all
- probs.children
- Instanc
- 얕은복사와 깊은 복사
- Promise Chaining
- align-iitems
- 문자열을 객체로 만드는법
- 클래스 문법 구조
- probs
- 다형성 (polymorphism)
- 상속 (inheritance)
- Math.floor()
- display
- 객체지향 프로그래밍 특징
- 재귀함수 탬플릿
- css 정리
- align-content
- 첫번째 미니 프로잭트
- Today
- Total
희락코딩
JavaScript _tip / 콜백 함수의 개념 본문
자바스크립트를 공부 하다보면 콜백함수라는 말을 많이 들어보셨을 겁니다. 과연 이 콜백함수는 무엇일까요 ?? 이번 블로깅은 setTimout( ) 함수를 예를 들어 콜백함수가 어떻게 쓰이는지 알아보도록 하겠씁니당
콜백(callback) 함수
콜백함수는 함수의 인수로 사용되는 함수를 콜백 함수라고 합니다! 콜백 함수를 이해하기 좋은 예시가 setTimeout(함수, 시간) 이 있습니다. 간단하게 설명하자면 타이머라고 생각하면 됩니다.
깊게 알고 싶으면 참고 https://developer.mozilla.org/ko/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
그렇다면 지금부터 아래 코드를 콘솔창에 복사 붙이기를 해 봅시다!!!
1
2
3
4
5
6
7
8
9
|
function timeout() {
setTimeout(()=> {
console.log('joycoding')
}, 3000)
}
timeout()
console.log('done!!!')
|
cs |
어떤 결과가 나오나요?
done!!이 먼저 나오고 3초뒤에 joycoding이 나오는 것을 확인 할 수 있습니다!! 근데 우리는 joycoding이 라는 작업을 먼저하고 done!!이 나오기를 희망합니다. 바로 이때!!! 콜백함수를 사용하면 이러한 문제를 쉽게 해결 할 수 있고 아주 유용하게 사용 할 수 있습니다!
다음 아래코드를 복사하고 콘솔창에 붙여 봅시다!!!
1
2
3
4
5
6
7
8
9
10
11
|
function timeout(callback) { // 2. 인수를 받아 줄 매개변수
setTimeout(()=> {
console.log('joycoding')
callback() // 3. 여기다 호출했어요! //콜백함수//
}, 3000)
}
//콜백함수//
timeout(() => { // 1. 익명함수 인수
console.log('done!!!')
})
|
cs |
어떤 결과가 나오나요 ?? 3초뒤에 joycoing과 done이 같이 나오는 것을 볼 수가 있습니다!!! 이것이 콜백함수의 개념입니다!!! 콜백함수는 내가 넣고 싶은 내용을 원하는 위치에 추가적으로 넣고 싶을 때 사용 할 수 있고 실행위치를 확실하게 보장하기 때문에 콜백함수를 씁니다!!!
딱 두가지만 기억하면 좋을 것 같습니다!!
콜백함수는 함수의 인수로 사용되는 함수!!
어떤 이벤트에 의해 호출되는 함수!!
여기까지가 콜백함수의 기본적인 원리에 대해 설명하였습니다!!!
하지만 콜백함수를 좀 더 자세히 파면 콜백함수의 동기/비동기 처리 방식이나 주의해야할 문법 등이 있다고 하니 기본 개념을 이해 했으면 깊게 공부 하시는 것을 권장합니다!
'프로그래밍 > 자바스크립트 꿀팁 개념' 카테고리의 다른 글
JavaScript _tip / 재귀적으로 생각하기 (0) | 2021.05.12 |
---|---|
JavaScript _tip / 고차함수 map, filter, reduce 원리 이해!!! (0) | 2021.04.28 |
JavaScript _tip / 정규표현식 (4) | 2021.04.27 |
JavaScript _tip / 얕은 복사와 깊은 복사 (Shallow copy, Deep copy) (4) | 2021.04.25 |
JavaScript _tip / 화살표 함수 두려워하지 말자! (4) | 2021.04.25 |