前端第一周,Javascript--递归函数

递归:

        //递归本质上是一种算法,是一种函数调用自身的编程技巧。

        //递归再JS语言中的具体表现为:函数调用自身

        //递归的特点:

        //重复计算执行,和循环非常类似。

        //所以递归也和循环一样,需要一个出口(停止条件)!

递归和循环很相似,可不可以用递归代替循环?

        //答:不可以

        //为什么?

        //答://性能不如循环

        //内存占用过高(非常致命)

        //递归次数必须预期收敛

    何时使用递归:

        //--操作简洁

        //--当处理子问题与原始问题相同时,操作简单

    递归测试:

        // 从1开打印,大值能打印到 一万多

        // 从1打印到100,大值花费 11~16 ms

    循环测试:

        // 从1开打印,没有测出结果,但是直到到三十多万没有问题

        // 从1打印到100,大致花费 2~3 ms

 //案例: 在控制台打印 1--100 之间的整数

        //var startD = new Date();

        function printNumber(n) {

            //函数停止调用自身的条件

            if (n > 100) {

                return;

            }

            console.log(n);

            //调用自身

            printNumber(n + 1);

        }

        printNumber(1)

        //var stopD = new Date();

        //console.log(stopD.getTime() - startD.getTime())


 

        // 递归测试

        // 从1开打印,大值能打印到 一万多

        // 从1打印到100,大值花费 11~16 ms

        // var startD = new Date();

        for (var i = 1; i <= 100; i++) {

            console.log(i);

        }

            // var stopD = new Date();

            // console.log(stopD.getTime()-startD.getTime());


 

            // 循环测试

                // 从1开打印,没有测出结果,但是直到到三十多万没有问题

                // 从1打印到100,大致花费 2~3 ms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值