해결된 질문
작성
·
249
0
안녕하세요. 섹션 8 데이터 통신에서 동기와 비동기 실습을 하며 모르는 것이 있어 질문드립니다.
setTimeout(() => {
console.log("setTimeout call")
})
const func3 = function() {
console.log("func3 call")
}
const func2 = function() {
func3()
console.log("func2 call")
}
const func1 = function() {
func2()
console.log("func1 call")
}
func1()
이 코드를 실행하였는데 console 창에 setTimeout call 위에 undefined가 뜬게 이해가 안갑니다. 어느 부분을 실행하였을 때 나온 undefined인지 설명 부탁드립니다!
답변 1
0
안녕하세요 김민희님!
위와 같은 코드를 console
탭에서 입력했을 때, 화면에 보여지는 undefined
는 우리가 호출한 함수의 반환값이 출력된 것입니다!
우리가 실행한 func1
함수가 아무런 데이터도 return
해주지 않기 때문에 호출 이후에 반환된 데이터가 없어 undefined
가 출력되는 것입니다.
setTimeout()
함수의 출력 값 이후에 undefined
가 출력되지 않는 이유에 대해서는 call stack과 callback queue에 대해서 조금 더 깊게 학습해 보시면 이해에 도움이 되리라 생각됩니다!
감사합니다 :)