2017-04-04 2 views
-1

이 재귀 함수가 정의되지 않은 것을 계속 말하는 이유를 파악하려고합니다.재귀 함수가 정의되지 않음을 나타냅니다.

function countDown(num) { 
    if (num === 0) { 
     return; 
    } 
    countDown(num - 1); 
} 

console.log(countDown(10)); 
+0

function countDown(num) { console.log(num); if (num === 0) { return 'stop'; } return countDown(num - 1); } console.log(countDown(4));

당신은'함수에서 모든 * 값 *을 return'하지 않습니다. –

+1

돌아 오는 것이 * 예상되는 것은 무엇입니까? 제로? – Pointy

답변

1

A는 "벌거 벗은"return 문은 그 따라서

return undefined; 

처럼도 그래서 함수가 전혀 return이 없습니다, 효과적으로 다른 경우
return undefined; 

과 동일 모든 경우에 함수는 undefined을 반환합니다.

1

값을 반환하지 않습니다. 따라서 undefined을 반환합니다.

1

num0 경우

function foo() { 
 
    return; 
 
} 
 

 
console.log(foo()); 
 

 
function bar() {} 
 

 
console.log(bar());

는 당신은 뒤에 아무것도 가진 return 문을 공격, 그래서 함수는 undefined를 반환합니다.

num이 다른 값인 경우 return 문을 전혀 사용하지 않으므로이 함수는 여전히 undefined을 반환합니다.

이 특정 예에서는 num10 일 때만 반환 값을 살펴 봤습니다. 그것은 "다른 모든 가치"입니다.

1

아무 것도 반환하지 않기 때문에 undefined을 반환합니다. 결과를 볼 수 있도록 모든주기마다 num 값을 기록하거나 끝에 stop 문자열을 반환하십시오.

관련 문제