Ich versuche herauszufinden, warum diese Rekursionsfunktion undefiniert sagt.Rekursionsfunktion sagt undefined
function countDown(num) {
if (num === 0) {
return;
}
countDown(num - 1);
}
console.log(countDown(10));
Ich versuche herauszufinden, warum diese Rekursionsfunktion undefiniert sagt.Rekursionsfunktion sagt undefined
function countDown(num) {
if (num === 0) {
return;
}
countDown(num - 1);
}
console.log(countDown(10));
A "nackte" return
Aussage ist das Gleiche wie
return undefined;
Im anderen Fall Ihre Funktion überhaupt keine return
hat, so auch das ist wie
return undefined;
So In allen Fällen gibt Ihre Funktion undefined
zurück.
Es wird kein Wert zurückgegeben; daher gibt es undefined
zurück.
function foo() {
return;
}
console.log(foo());
function bar() {}
console.log(bar());
Wenn num
ist 0
dann treffen Sie eine return
Aussage mit nichts nach ihm, so liefert die Funktion undefined
.
Wenn num
ein anderer Wert ist, dann treffen Sie überhaupt keine return
-Anweisung, daher gibt die Funktion immer noch undefined
zurück.
In diesem speziellen Beispiel sehen Sie den Rückgabewert nur, wenn Sie num
10
sind. Das ist "jeder andere Wert".
Es gibt undefined
zurück, weil Sie nichts zurückgeben. Um das Ergebnis sehen zu können, z.B. Protokollieren Sie den Wert num
mit jedem Zyklus oder geben Sie am Ende stop
Zeichenfolge zurück.
function countDown(num) {
console.log(num);
if (num === 0) {
return 'stop';
}
return countDown(num - 1);
}
console.log(countDown(4));
Sie nie 'return' einen beliebigen Wert * * aus Ihrer Funktion. –
Was erwarten Sie * erwarten * es zurückzukehren? Null? – Pointy