递归函数指的一个函数调用自身函数,接下来在文章中为大家分享的是在js中如何实现递归函数,具有一定的参考价值,希望对大家有所帮助。
【推荐教程:JavaScript教程】
我们可以使用JavaScript从函数的外部或者是在其他函数中调用函数。甚至是可以从内部调用函数。当一个函数调用自身时,就称为递归函数,例
<script> function demo(x) { if (x < 0) return; if (x === 0) return 1; return x * demo(x - 1); } console.log(demo(3)); </script>
输出结果为:6
从上面的例子可以看出在return x * demo(x?-?1)
中实际上是再次调用自身函数(demo(x-1))
,但是其参数比第一次调用的参数少一个,这就是递归函数
递归函数的三大特征
终止条件
终止条件就类似于紧急制动器,它在输入错误的情况可以防止递归,在上文的案例中“if (x < 0) return”
就是设置的终止条件,所以说当输入负数时就不会运行递归函数。
基本案例
基本案例就是递归函数的目标。基本案例通常是放在一个if语句中,在上文的案例中“if (x === 0) return 1;"
就是一个基本案例,因为当x的值减少到0时就能成功的确认阶乘值了
递归
递归就是实现的功能,在上例中“return x * demo(x?—?1);”
就是递归函数实际发生的位置,将函数返回的值x乘以demo(x-1)
的值就是我们最后所要求的值
例:
<script> function revStr(str){ //终止条件 //str === ''是基本案例 if (str === '') return ''; //递归 return revStr(str.substr(1)) + str[0]; } console.log(revStr('cat')); </script>
输出结果为:tac
总结: