递归输出5的阶乘和详解
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>递归输出5的阶乘</title>
<script type="text/javascript">
//递归会先一层一层的调用,然后再一层一层的返回值
function fn(n){
if(n==1){
return 1;
}
return n*fn(n-1);
}
document.write(fn(5));//输出120
/* //递归输出5的阶乘的分解
//当fn(5)调用fn()时,传一个参数5,即函数变为如下
fn(5)//会接收得到fn(5)传过来的值5*4*3*2*1,即5的阶乘120
function fn(5){
if(5==1){
return 1;
}
return 5*fn(5-1);//此处fn(5-1)会再次调用fn(),此时传过去的参数为4
//返回值时会接收到fn(4)返回的值4*3*2*1,此处变为return 5*4*3*2*1;
}