课程名称:4小时快速体验ES6-10的强大
课程章节: ES6基础知识详解
课程讲师:大谷
课程内容:
上篇文章我们写了函数扩展的前两种,这节继续讲解函数的尾调用。函数的尾调用主要用来解决函数之间调用优化的问题,其中这个尾
代表的是最后的意思,就是在最后一步调用另一个函数,另一个函数可以是其他的函数也可以是自己,如果是调用自己那就是递归,如果调用其他的函数那就是函数的嵌套。函数的尾调用需要满足条件才属于尾调用,条件就是最后一步,而且最后一步不能参与别的运算。下面列举了一种符合的和两种不符合尾调用的。
递归的情况:
如果不使用尾调用可能会导致内存溢出的情况。因为会不断地分配内存空间,当分配到一定成功,肯定会产生内存溢出的。使用尾调用之后,是共用一个内存空间,性能就会有很大的提高。我们想要使用递归来实现某个数的阶乘,而且还要符合尾调用,就不能在最后一步使用别的运算进行参与,下面针对符合不符合进行了列举。
课程收获:
这一章主要学习了ES6
中函数扩展中的尾调用,我们在使用尾调用的时候,需要满足两个条件,一是我们要在最后一步调用另一个函数,二是最后一步的函数中不能再使用其他运算符进行运算。尾调用的作用就是用来优化问题的,提高性能。除此之外,我们平常在递归函数中会经常使用尾调用。递归也是我们平时工作或者面试中几乎都会遇到,学习了尾调用之后,可以将递归的性能进行优化。