js中的递归调用

JavaScript014

js中的递归调用,第1张

其实,这就是一个简单的函数传参例子,我来给你简单讲一下:

foo(3)也就是往函数里面传入一个值等于3,也就是i=3

function foo(i) {

if (i <0)//因为i=3了,这个时候3不是小于0,因此会跳到后面去执行,

return//只有当i小于0时,才会输出结果,最终结果就等于0;

console.log('begin:' + i)

foo(i - 1)

console.log('end:' + i)

}

<!DOCTYPE >

<html>

<head>

<meta content="" charset="utf-8">

<title>函数的递归调用</title>

</head>

<body>

<script>

//递归的概念:自己调用自己

//注意:使用递归的时候必须有一个结束标志,否则会报内存溢出的错误 Maximum call stack size exceeded

/* 1.案例一:求1,2,3...n 的和 */

function fn(n){

if(n===1){

return 1

}

return n+fn(n-1)

}

//console.log(fn(3))

/* 2.案例二:求1,2,3...到n的阶乘 */

function getFactorial(n){

if(n===1){

return 1

}

return n * getFactorial(n-1)

}

//console.log(getFactorial(3))

/* 案例三:斐波那契数列 *///第n个数等于前两个数的和,除第一个数跟第二个树外:如1,1,2,3,5,8,11,19,30...

function getNFibonacciSequence(n){

if(n===1 || n===2){

return 1

}

return getNFibonacciSequence(n-1)+getNFibonacciSequence(n-2)

}

console.log(getNFibonacciSequence(4))

</script>

</body>

</html>