• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

동기와 비동기, undefined 질문입니다.

23.02.14 16:16 작성 조회수 190

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

otter님의 프로필

otter

2023.02.14

안녕하세요 김민희님!

위와 같은 코드를 console 탭에서 입력했을 때, 화면에 보여지는 undefined는 우리가 호출한 함수의 반환값이 출력된 것입니다!

우리가 실행한 func1 함수가 아무런 데이터도 return 해주지 않기 때문에 호출 이후에 반환된 데이터가 없어 undefined가 출력되는 것입니다.

setTimeout() 함수의 출력 값 이후에 undefined가 출력되지 않는 이유에 대해서는 call stackcallback queue에 대해서 조금 더 깊게 학습해 보시면 이해에 도움이 되리라 생각됩니다!

감사합니다 :)