尾递归

在看阮一峰老师的ES6教程,看到了函数的扩展中谈到了尾递归。这个概念对我来说还很新,认真看了下。两个来源,一个阮老师的2015年写的博客,一个是ES6入门教程。博客有图。

我个人对尾递归的理解就是,函数的最后一步调用了仅函数本身,不包括任何其他的外层变量,所有的变量通过参数方式传递到内层函数,这样子外层函数就没有存在理由了,因此外层调用帧也滚蛋了,只保留内层函数的调用帧,层层如此,因此始终只有一个调用帧而已,最后满足某些条件,返回一个值,整个过程结束。所以尽量写尾递归的函数,会节约很多内存空间。

http://www.ruanyifeng.com/blog/2015/04/tail-call.html

http://es6.ruanyifeng.com/#docs/function#%E5%B0%BE%E8%B0%83%E7%94%A8%E4%BC%98%E5%8C%96

感觉现在我光看ES6教程和网道,有时候去MDN查查相关的其他知识,已经学到了不少。算是沾了网络发达的光,目前还没有花钱买书看的打算,因为连文档都还没看完弄熟悉,等有自信了,就去买本书深入下更细节的东西。感谢翻译外文教程文档的所有人,如果没有他们翻译文档,很多人可能都会因为这个英文门槛就跟前端或者其他程序员岗位说再见了。等自己有能力了,一定要做一些反哺社区的事情。

发表评论

电子邮件地址不会被公开。 必填项已用*标注