递归是一种解决问题的方法,它从解决问题的各个小部分开始,直到解决最初的大问题。递归通常涉及函数调用自身。为了不让函数无限调用下去,递归函数必须有基线条件(停止递归的条件),不然会出现调用栈溢出的错误。
function factorial(n) {
if (n === 1 || n === 0) { // 基线条件
return 1;
}
return n * factorial(n - 1); // 递归调用
}
console.log(factorial(5)); // 120
递归区别于死循环,有个递进再回归的过程
ps 昨天面试问我栈的应用,我没答出来
function factorial(n) {
if (n === 1 || n === 0) { // 基线条件
return 1;
}
return n * factorial(n - 1); // 递归调用
}
console.log(factorial(5)); // 120
递归区别于死循环,有个递进再回归的过程
ps 昨天面试问我栈的应用,我没答出来
![[捂脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)
展开
评论
8