When I run the below JS
, the console correctly logs a
as string: "foo", but then the return value is undefined. typeof()
also says it's a string. There is no change from line 5 to 6 (the console.log
and the return
), so how can this spontaneously become undefined?
let a = "foo";
let c = 0;
function test() {
if (c === 5) {
console.log(a);
return a;
} else {
c++;
test();
}
}