javascript中的递归和函数调用

javascript中的递归和函数调用,javascript,Javascript,功能测试(参数,n){ console.log(参数“start--”,n); 如果(n>1){ log(param,“第一次递归之前----”,n); 试验(“试验-1”,n-1); log(param,“第一次递归后--”,n); 试验(“试验-2”,n-1); log(param,“第二次递归后--”,n); } console.log(参数“end--”,n); } 测试(“初始化”,3)您可以对输出使用一些缩进,并查看实际运行的级别 功能测试(参数,n,级别=0){ console.

功能测试(参数,n){
console.log(参数“start--”,n);
如果(n>1){
log(param,“第一次递归之前----”,n);
试验(“试验-1”,n-1);
log(param,“第一次递归后--”,n);
试验(“试验-2”,n-1);
log(param,“第二次递归后--”,n);
}
console.log(参数“end--”,n);
}

测试(“初始化”,3)您可以对输出使用一些缩进,并查看实际运行的级别

功能测试(参数,n,级别=0){
console.log(“”.padStart(级别*2),级别,参数,“start--”,n);
如果(n>1){
试验(“试验-1”,n-1,等级+1);
试验(“试验-2”,n-1,等级+1);
}
console.log(“”.padStart(级别*2),级别,参数,“end--”,n);
}

测试(“初始化”,3)它是完全同步的。它只是在继续之前执行递归。您的输出应该是:初始化开始---3,初始化,在第一次递归之前---3,测试1开始---2,在第一次递归之前测试1---2,在第一次递归之后测试1---2,测试2开始---1,测试2,结束---1