什么是尾递归
尾递归就将递归调用写在函数的尾部return
尾递归的好处
解决传统递归的栈溢出问题
尾递归适合的业务场景
1.需要递归优化的函数没有用timeout等异步队列进行递归调用函数自己
2.需要递归优化的递归函数的返回值不是每次都返回,而是条件性返回
尾递归优化后的递归demo
/** * @method 测试尾递归demo方法 尾递归适合的业务场景 适合 * @des 此方法为递归调用 * @param {Number} a 累加的数字 * @returns {Number} 递归执行的累加结果 */ function test(a) { //函数的执行代码 a++; //如果递归条件成立继续递归 如果递归条件不成立则返回递归的最终执行结果 return (a < 3) ? test(a) : (a); } console.log(test(1))