如何将JavaScript递归函数改写成长尾递归形式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1147个文字,预计阅读时间需要5分钟。
目录
一、什么是递归?
二、利用递归求解数学题
1.计算 n!(n 的阶乘)
2.求斐波那契数列
三、利用递归求解对应数据对象
1.什么是递归?
2.如果一个函数在内部可以调用自身,那么它就是递归
目录
- 一、什么是递归?
- 二、利用递归求数学题
- 1、求1 * 2 * 3 * 4 …*n的阶乘
- 2、 求斐波那契数列
- 三、利用递归求对应数据对象
一、什么是递归?
如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数。
如下所示:
function fn(){ fn(); } fn();
这个函数就是一个递归函数,当我们直接打印时,会:
发现打印错误,这是为什么呢?因为递归函数的作用和循环效果一样。当没有给他返回值的时候,它就会一直死循环下去。所以,我们知道了:
由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件 return。
本文共计1147个文字,预计阅读时间需要5分钟。
目录
一、什么是递归?
二、利用递归求解数学题
1.计算 n!(n 的阶乘)
2.求斐波那契数列
三、利用递归求解对应数据对象
1.什么是递归?
2.如果一个函数在内部可以调用自身,那么它就是递归
目录
- 一、什么是递归?
- 二、利用递归求数学题
- 1、求1 * 2 * 3 * 4 …*n的阶乘
- 2、 求斐波那契数列
- 三、利用递归求对应数据对象
一、什么是递归?
如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数。
如下所示:
function fn(){ fn(); } fn();
这个函数就是一个递归函数,当我们直接打印时,会:
发现打印错误,这是为什么呢?因为递归函数的作用和循环效果一样。当没有给他返回值的时候,它就会一直死循环下去。所以,我们知道了:
由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件 return。

