深挖javascript函数的重要性及递归的作用
1、一:考考你:函数执行结束后是否还有其它的语句输出?如下图:
2、举个例子:如下图
3、注:如上面例子是计算两个参数的和,如果在函数结束时不写return undefined的话,它后偷偷的在后面为你加上,也就是函数在结束时默认地为你返回抛出一个值(不一定非是undefined,也可以是其它类型的数据)。
想一想:如果我们在函数的未尾用一个变量来接收抛出的值,如下图:
4、大家猜猜看,这时候result抛出去的值是多少?执行程序,结果如下:
5、二:什么是递归?
函数内部又调用了函数自身,我们把这种情况叫做递归,如下例:
6、案例分析:首先我们定义了一个函数,然后调用函数:add();在函数体内定义了一个变量a,ua 给它赋值,然后输出a,接着又抛出了函数本身add,大家试想一下,这时候函数能执行吗,结果是怎样的呢?如下图:
7、注:这就是我们在程序里面所说的死循环,或者叫函数里面的无限递归(重复执行函数,形成了死循环)。
8、练一练:
1、下面我们就用递归来实现求1—100内的数字之和。
案例分析:递归的思路
找规律
找出口(1+2+3+4+5…………+100);
用递归之前先来个return;,如当n=100时,n=n+add(99),也就是n=n+add(n-1);当n等于1的时候,递归结束,最后用一个变量接收函数抛出的值。代码如下:
9、运行程序,结果如下:
10、例2:求n的阶乘。
案例分析:
什么是阶乘?如:5的阶乘=5*4*3*2*1
找规律:如5的阶乘可以改写成:5乘以4的阶乘,4可以改写成3的阶乘,也就是n乘以(n-1),具体代码如下图:
11、运行代码,结果如下:
12、怎么样,今天讲的小伙伴们都听明白了吗,大家好喜欢的话请关注、收藏、分享、加粉,还有更我精彩的内容在后面等着你们哦!
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:69
阅读量:175
阅读量:102
阅读量:187
阅读量:187