ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 6.1什么是递归? 如果**一个函数在内部可以调用其本身**,那么这个函数就是**递归函数**。 简单理解:函数内部自己调用自己这个函数就是递归函数 递归函数的作用和循环效果一样 由于递归很容易发生“栈溢出”错误( stack overflow) , 所以**必须要加退出条件return**。 ![](https://img.kancloud.cn/7d/9c/7d9cdb093cdbf6c40fb1a263d0fdfdee_869x472.png) ## 6.2利用递归求数学题 ### 1.求1`*`2`*`3...`*`n 阶乘。 ![](https://img.kancloud.cn/87/e8/87e8435de360ac57fef8cb507b40e146_739x581.png) ### 2.求斐波那契数列。 ![](https://img.kancloud.cn/9b/e2/9be2e0a71732159c7f3365d84b310d9b_1060x437.png) ## 6.3利用递归求:根据id返回对应的数据对象 ![](https://img.kancloud.cn/6c/be/6cbe36df5fb9d69de41a50bcda6e641a_697x587.png) ![](https://img.kancloud.cn/3a/2e/3a2e0d136d0eb1854db5beb5e9def0be_872x613.png) ### 返回对象数据 ![](https://img.kancloud.cn/96/d7/96d7c85aa5d624769e28f57eb9296444_930x741.png) ## 6.4浅拷贝和深拷贝 1.浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用 2.深拷贝拷贝多层, 每一级别的数据都会拷贝. 3.Object.assign( target, ..source) es6 新增方法可以浅拷贝 (使用者,被使用者) ### 浅拷贝 ![](https://img.kancloud.cn/7f/a8/7fa85d4a1dff1dd17fd824db1f7689e9_842x621.png) ![](https://img.kancloud.cn/92/56/9256bc3666b6e0cfa7b85af13c8db750_552x186.png) ### 深拷贝 ![](https://img.kancloud.cn/91/82/9182a2d14855c4cf6ceb82b8bbf1b2f2_658x424.png) ![](https://img.kancloud.cn/70/e1/70e1c799e8eecf9d931e8ed0fbf47cce_828x708.png) 调用 输出 ![](https://img.kancloud.cn/a3/1d/a31d1c940ea41233cace01685fdfff6d_284x77.png) ![](https://img.kancloud.cn/bd/75/bd75710589f25ae2a951719435d51cf7_842x443.png)