JavaScript 语言的递归编程

 更新时间:2010年05月18日 23:02:16   作者:  
关于递归的解释见《SICP》第1章。下面是个简单的递归编程题目。
题目:从1累加一直加到100的和是多少?

非递归的循环写法:
复制代码 代码如下:

1run: function() {
2 var sum = 0;
3 for(var i=1;i<=100;i++) {
4 sum = sum + i;
5 }
6 console.log(sum);
7}

递归的写法:

复制代码 代码如下:

var testCase = {
sum: 0,
run: function(n) {
if(n>=100) {
return 100;
}
else {
sum = n+ testCase.run(n+1);
return sum;
}
}
};
console.log(testCase.run(1));

上面这种代码在网上一搜就一大堆,下面的写法与它等价:
复制代码 代码如下:

console.log((function(n){
var sum=0;
if(n<=1){
return 1;
}
else{
sum = arguments.callee(n-1)+n;
return sum;
}
})(100));

这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。

相关文章

  • JS中的eval 为什么加括号

    JS中的eval 为什么加括号

    JS中的eval 为什么加括号呢?相信很多朋友都不是很清楚吧,下面小编通过本教程帮助大家学习JS中的eval 为什么加括号,感兴趣的朋友了解下吧
    2016-04-04
  • js图片轮播手动切换特效

    js图片轮播手动切换特效

    这篇文章主要为大家详细介绍了js图片轮播手动切换特效,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • JavaScript中如何在一个循环中等待示例代码详解

    JavaScript中如何在一个循环中等待示例代码详解

    这篇文章主要介绍了在JavaScript中如何在一个循环中等待(附代码示例),下面是如何使用for..of 循环来迭代一个数组并在循环内等待,需要的朋友可以参考下
    2022-08-08
  • 非常不错的不间断循环滚动类 兼容多浏览器

    非常不错的不间断循环滚动类 兼容多浏览器

    非常不错的不间断循环滚动类 兼容多浏览器...
    2006-12-12
  • JavaScript函数作用域链分析

    JavaScript函数作用域链分析

    这篇文章主要介绍了JavaScript函数作用域链,实例分析了函数作用域链的原理与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 用户输入密码的强度

    用户输入密码的强度

    用户输入密码的强度...
    2006-07-07
  • 关于uniapp的request封装保姆级教程

    关于uniapp的request封装保姆级教程

    这篇文章主要给大家介绍了关于uniapp的request封装保姆级教程,request是基于uni-app框架封装的一个网络请求库,可以用于发送http请求和处理响应数据,需要的朋友可以参考下
    2023-07-07
  • JavaScript多并发问题如何处理

    JavaScript多并发问题如何处理

    这篇文章给大家介绍javascript多并发问题处理方法,涉及到js多并发处理方法相关知识,对js多并发处理方法感兴趣的朋友可以参考下本文
    2015-10-10
  • JS实现点击掉落特效

    JS实现点击掉落特效

    这篇文章主要介绍了JS实现点击掉落特效,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • 新年快乐! javascript实现超级炫酷的3D烟花特效

    新年快乐! javascript实现超级炫酷的3D烟花特效

    这篇文章主要为大家详细介绍了javascript实现超级炫酷的3D烟花特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论