JavaScript 语言的递归编程


Posted in Javascript onMay 18, 2010

题目:从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));

这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
Javascript 相关文章推荐
javascript中this做事件参数相关问题解答
Mar 17 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
JavaScript对象学习小结
Sep 02 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
Apr 26 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
vue.js element-ui tree树形控件改iview的方法
Mar 29 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
May 31 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
详解Vue组件之间通信的七种方式
Apr 14 Javascript
JS 树形递归实例代码
May 18 #Javascript
document.getElementById方法在Firefox与IE中的区别
May 18 #Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
May 18 #Javascript
Javascript中的变量使用说明
May 18 #Javascript
Javascript实现的鼠标经过时播放声音
May 18 #Javascript
JavaScript 继承机制的实现(待续)
May 18 #Javascript
JavaScript 面向对象编程(2) 定义类
May 18 #Javascript
You might like
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
javascript中attribute和property的区别详解
2014/06/05 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
详解使用vuex进行菜单管理
2017/12/21 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[06:36]吞吞映像top1
2014/06/20 DOTA
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
python中函数默认值使用注意点详解
2016/06/01 Python
python使用pymysql实现操作mysql
2016/09/13 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
2014年师德承诺书
2014/05/23 职场文书
村党支部书记承诺书
2014/05/29 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
个人党性分析总结
2015/03/05 职场文书
社区活动总结范文
2015/05/07 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
导游词之清晏园
2019/11/22 职场文书