티스토리 뷰

Callback function

다른 함수의 인자로 사용되는 함수이며, 이름처럼 나중에 실행된다.

콜백함수를 전달 받은 함수의 동작에 따라 콜백함수는 동기적 or 비동기적으로 실행된다.

콜백함수가 자바스크립트 내부에서만 연산된다면 동기적으로 실행되고, (= Call Stack 에 쌓임)

외부에 있는 무언가에게 콜백 함수를 넘기는 경우 비동기적으로 실행된다. (= Callback Queue 에 쌓임)

동기적 (순차적 실행)

function fakeSetTimeout(callback, delay) {
    callback();
}

console.log(0);
fakeSetTimeout(() => {
    console.log('hello');
}, 0);
console.log(1);
[console]
0
hello
1

 

비동기적 콜백함수

분명 setTimeout 에 0초를 지연되게 했음에도 불구하고, 맨 마지막으로 실행되었다.

즉, 비동기적으로 실행

console.log(0);
setTimeout(() => {
    console.log('hello');
}, 0);
console.log(1);
[console]
0
1
hello

 

 

참고 사이트

👉MDN 사이트에서 자세히 보기 

👉Youtube - Callback 함수

👉Youtube - 싱글스레드


First-Class function

함수를 다른 변수와 동일하게 다루는 언어는 First-Class function를 가졌다고 표현합니다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수 있으며, 변수에도 할당할 수 있습니다.

 

👉MDN 사이트에서 자세히 보기

'Javascript' 카테고리의 다른 글

Javascript - Class, Object  (0) 2021.09.02
Javascript- 함수 선언 vs 함수 표현식  (0) 2021.09.02
Javascript - function, parameter  (0) 2021.09.01
Javascript - 논리연산자  (0) 2021.08.28
Javascript - 자료형  (0) 2021.08.28