天天看点

Fibonacci Sequences in JavaScript with/without recursive

作者:link

介绍几种使用javascript实现斐波那契数列的方法。

其中第一种和第二种都是使用递归:(可优化,应该将每一个元素的值缓存起来,而不是每次递归都计算一次)。

这里可以说一下JS函数实参对象的<code>callee</code>属性。JS函数的实参对象定义了<code>callee</code>和<code>caller</code>属性。在ES5严格模式中,对这两个属性的读写操作都会产生一个类型错误(TypeError)。而在非严格模式下,ES标准规范规定<code>callee</code>属性指代当前正在执行的函数。<code>caller</code>是非标准的,但大多数浏览器都实现了这个属性,它指代调用当前正在执行的函数的函数。通过caller属性可以访问调用栈。callee属性在某些时候会非常有用,比如在匿名函数中通过callee来递归地调用自身。

第三种用的非递归。

第四种也是非递归,但是利用了黄金比率1.618,不过要注意的是这种方法在n&gt;69之后,性能就会下降很快,参考文章看这里:http://www.mathsisfun.com/numbers/fibonacci-sequence.html。

原文链接:http://ivweb.io/topic/5621116734764b2c1676973a