# 递归
2 min read
Table of Contents
递归,是指在函数的定义中使用函数自身的方法。
这里主要是去了解:
- 递归的终止条件
- 递归的返回值
递归的终止条件
递归要包含一个终止条件,以保证递归不会无限循环无终止的调用。一旦忽略了终止条件,往往就会导致内存溢出。
var fibonacci = function (n) { if (n === 1 || n === 2) return 1 return fibonacci(n - 1) + fibonacci(n - 2)}以上典型的斐波那契数列的递归调用例子,当参数 n 等于 1 或者 2 的时候,就会触发终止条件,不会继续递归调用。
递归的返回值
当我们需求的返回值比较简单时,可以参考上面的,当我们的返回值比较复杂(如数组,对象等)时,我们可以在调用的时候给默认值,最后返回最终值。
function pushArray(n, arr) { arr.push(n) if (n >= 10) { return arr } return pushArray(n + 1, arr)}
var r = pushArray(1, [])// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]