Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > JavaScript 递归函数

JavaScript 递归函数

浏览: 作者:Datehoer 发布日期:2020-12-24 20:19:40 来源: 原创
浅谈JavaScript中的递归函数,递归函数,其实就是函数调用自身,然后通过条件来进行返回值。

一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

通俗来说,JavaScript中递归函数就是为了减少代码数量,举个例子。

算阶乘,我们如果不适用递归的话,要写很长一串的代码,不断进行调用就行了,而我们写递归,则只需要写一次。

function aaa () {

     xxxxxxx
}

然后不断aaa(1)aaa(2)aaa(3)aaa(4)来进行运算。
而我们使用递归的话,也就是
function aaa(){
    if (xxx){
         aaa(xxx)
    }
    else {
        return xxxx
    }    
}

举一个真实的例子

function f(num) {
    if(num <= 1) {
        return 1
    } else {
        return f(num-1)*num
    }
}   
console.log('10!= '+ f(10))    
// 10!= 3628800

其实也就是利用函数不断调用,来进行代码的重复利用。本来如果不适用递归函数的话,那么我们不是写循环就是写一个函数然后不断调用,而我们如果使用递归函数的话,就会变成函数里面调用函数,然后调用的函数再调用函数,直到满足条件之后return回去即可。
但实际上实际开发中,递归用到的还是比较少的,因为它很占资源。我们平常的代码,都是从上到下执行的,一个执行完JavaScript会利用垃圾回收机制来进行回收内存,然后执行下一个代码,而递归则会使这个函数保留下来,然后等待下个函数,周而复始,一直到满足return条件才开始挨个结束运行。

所以我们在运用递归函数的时候,要保证一定要有结束的语句,并且一定可以满足,否则会陷入死循环中,一直调用。。。
然后再就是在函数中要调用本函数,要不那里是递归呢?

如果有什么疑问,可以在评论区留言,我会在看到的第一时间进行回复的。

 


版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/99.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!