Javascript 有人能帮我理解以下代码的输出吗?
我试过了,但每次我都得到不同的奇怪输出。理想情况下,它应该打印0、1、2、3、4并从循环中出来,但不会发生Javascript 有人能帮我理解以下代码的输出吗?,javascript,Javascript,我试过了,但每次我都得到不同的奇怪输出。理想情况下,它应该打印0、1、2、3、4并从循环中出来,但不会发生 function foo(iteration) { if (iteration === 5) { return; } for (let i = 0; i < 5; i++) { console.log(i); foo(iteration + 1); } } foo(0); 要了解当前输出,请从逐步浏览
function foo(iteration) {
if (iteration === 5) {
return;
}
for (let i = 0; i < 5; i++) {
console.log(i);
foo(iteration + 1);
}
}
foo(0);
要了解当前输出,请从逐步浏览函数开始。这有助于我把它写出来,并跟踪这些值 迭代从0开始 它启动for循环 我现在是0 它被记录到控制台 再次调用值为1的foo 迭代仍然少于5次 一个新的for循环开始。步骤2 i是0,这是一个全新的循环,因为它位于foo的一个新实例中 在for循环的每个迭代中,调用foo,当迭代少于5次时,启动一个新的for循环 下面是一个函数示例,它可以执行您喜欢的操作: 函数迭代{ 而畸形<5{ 控制台登录 迭代++ } }
foo0因为您已经在使用递归,所以不需要使用该循环。像这样的方法应该会奏效: 函数迭代{ 如果迭代<5{ 控制台。登录; 迭代次数+1; } }
foo0您不需要使用递归和循环。只有循环本身会起作用 对于let i=0;i<5;i++{ console.logi;
}这是因为函数的递归调用中的循环。您只需删除for循环并保留其余代码。它将按您的意愿打印数字。