Javascript 为什么这个递归示例给了我一个无限循环?
这快把我逼疯了。 代码如下:Javascript 为什么这个递归示例给了我一个无限循环?,javascript,algorithm,recursion,Javascript,Algorithm,Recursion,这快把我逼疯了。 代码如下: function laugh(){ let counter = 10; if(counter <= 0){ return; } else{ console.log('laugh'); counter--; laugh() } } 为什么这会给我一个无限循环,而它应该打印10次“笑”?您已经在函数中定义了计数器,所以每次调用函数时它都会重置为10 设计数器=10; 函数笑{ 如果计数器您已经在函数中
function laugh(){
let counter = 10;
if(counter <= 0){
return;
}
else{
console.log('laugh');
counter--;
laugh()
}
}
为什么这会给我一个无限循环,而它应该打印10次“笑”?您已经在函数中定义了计数器,所以每次调用函数时它都会重置为10 设计数器=10; 函数笑{
如果计数器您已经在函数中定义了计数器,那么每次调用函数时它都会重置为10 设计数器=10; 函数笑{
如果计数器变量计数器应该是全局变量。此时,无论何时调用函数,计数器都将始终以10声明和初始化。变量计数器应该是全局变量。此时,无论何时调用函数,计数器都将始终以10声明和初始化。与其他变量一样回答说,每一个笑声都创造了一个新的本地计数器 这里最合适的递归方法是将计数器作为参数传递: 函数计数器{
ifcounter像其他答案所说的那样,每一个笑声都会产生一个新的本地计数器 这里最合适的递归方法是将计数器作为参数传递: 函数计数器{ 如果计数器,则应在函数外部定义计数器。这样,计数器始终为10。您应在函数外部定义计数器。这样,计数器始终为10。