# 递归

2 min read
Table of Contents

递归,是指在函数的定义中使用函数自身的方法。

这里主要是去了解:

  1. 递归的终止条件
  2. 递归的返回值

递归的终止条件

递归要包含一个终止条件,以保证递归不会无限循环无终止的调用。一旦忽略了终止条件,往往就会导致内存溢出。

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]

More Posts

# CSS实现图形

2 min read

有一些形状可以通过纯 CSS 实现图形,如下拉三角型,下拉箭头等。。。