什么是递归 递归就是用函数来做循环,即在函数内部再调用这个函数。 注 意 一 定 要 有 r e t u r n 条 件 , 在 适 当 的 时 候 r e t u r n 出 去 , 否 则 会 死 循 环 \color{#ff0000}{注意一定要有return条件,在适当的时候return出去,否则会死循环} 注意一定要有return条件,在适当的时候return出去,否则会死循环 实际应用 入门版 案例一:自然数1到n的求和(一般不会用递归求和,这里是为了加深递归的了解) function sum(n) { if (n === 1) return 1 return n + sum(n - 1) //相当于 return 100 + 99 + 98 + ... + 1 } sum(100)//5050 进阶版 案例二:递归实现对象的深拷贝 function deepClone(sourceObj) { if (!sourceObj || typeof sourceObj !== 'object' || Object.keys(sourceObj).length === undefined) { return sourceObj } const cloneObj = sourceObj instanceof Array ? [] : {} Object.keys(sourceObj).forEach(obj => { cloneObj[obj] = deepClone(sourceObj[obj]) }) return cloneObj } let newObj = deepClone(obj)//深拷贝后的新对象 如 有 问 题 或 错 误 , 欢 迎 指 正 \color{skyblue}{如有问题或错误,欢迎指正} 如有问题或错误,欢迎指正