一个javascript递归函数的问题

tianxz 2008-11-08 01:48:24
pp=function(ud)
{
ii=ud;
alert('ii='+ii)
if (ii>-1)
{
for (var k=0;k<2;k++)
{
alert('i='+ii+'\nk='+k+'\nu='+ud);
ii=ii-1;
pp(ii);
if (ii<0) {alert('oo'+ii+'\n'+ud+'\nk='+k);break;}
}
}

}
pp(1);

和下面的结果为什么不一样?其中UD忽略。
pp=function(ii)
{
alert('ii='+ii)
if (ii>-1)
{
for (var k=0;k<2;k++)
{
alert('i='+ii+'\nk='+k+'\nu=');
ii=ii-1;
pp(ii);
if (ii<0) {alert('oo'+ii+'\n'+ud+'\nk='+k);break;}
}
}

}
pp(1);

请帮忙分析一下
...全文
186 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangshenghong 2008-11-14
  • 打赏
  • 举报
回复
呵呵,应该是局部变量与全局变量的问题
tianxz 2008-11-12
  • 打赏
  • 举报
回复
还有不理解,谢谢!
neo_yoho 2008-11-08
  • 打赏
  • 举报
回复
因为有ii=ii-1; 对ii这个变量进行改变

不严谨的来理解这2个方法中的ii
上面的ii是个中间变量
下面的ii是个全局变量
IMAGSE 2008-11-08
  • 打赏
  • 举报
回复
友情帮顶~
wmm88257789 2008-11-08
  • 打赏
  • 举报
回复
ding
cloudgamer 2008-11-08
  • 打赏
  • 举报
回复
var ii=ud;
要用var这样定义
否则就是全局变量
toury 2008-11-08
  • 打赏
  • 举报
回复
递归用第二个;
ii要作为全局变量声明来使用
j_lei407 2008-11-08
  • 打赏
  • 举报
回复
第一个函数变量ii作为局部变量替换了参数UD
嵌套调用不改变变量ii
第二个函数ii直接作为参数
嵌套使用改变ii变量
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》还提供了一些使用JavaScript的最佳实践。无论是新手还是老手,这些如何正确使用JavaScript的经验都能帮助他们养成良好的编程习惯。《JavaScript核心技术》还介绍了一些调试和开发JavaScript的工具,这些工具无疑能够提高我们的开发效率。 《JavaScript核心技术》最后对于Ajax和几个流行的JavaScript库的介绍,无疑会开阔我们在JavaScript使用上的思路。 《JavaScript核心技术》是一本真正意义上的“新书”,不仅介绍了最新的JavaScript知识和方向,还完全覆盖了当今Web开发中关于JavaScript的所有重要话题,它使用了大量实例代码,图文并茂地讲解了使用JavaScript的各个层次和领域的内容。它不是一本参考手册,但却是一本值得拥有的教程。 JavaScript核心技术 目录: 前言 第1章JavaScript初探 1.1规范和实现相互交织的历史 1.2跨浏览器的不兼容性和其他常见的JavaScript传说 1.3你能用JavaScript来做什么 1.4JavaScript初探:“HelloWorld!” 1.5JavaScript沙箱 1.6可访问性和JavaScript的最佳实践 第2章JavaScript数据类型与变量 2.1变量的标识 2.2作用域 2.3简单类型 2.4常量:有名称但不改变 2.5习题 第3章运算符和语句 3.1JavaScript语句的格式 3.2简单语句 3.3条件语句和程序流 3.4条件运算符 3.5逻辑运算符 3.6高级语句:循环语句 3.7习题 第4章JavaScript对象 4.1对象构造函数 4.2Number对象 4.3String对象 4.4正则表达式与RegExp 4.5有专门用途的对象:Date和Math 4.6JavaScript数组 4.7关联数组:不是数组的数组 4.8习题 第5章函数 5.1定义函数:细数所有方式 5.2回调函数 5.3函数和递归 5.4嵌套函数、函数闭包和内存泄漏 5.5作为对象的函数 5.6习题 第6章捕捉事件 6.1O级DOM上的事件句柄 6.22级DOM上的事件句柄 6.3产生事件 6.4习题 第7章表单与即时验证 7.1访问表单 7.2把事件附加在表单上:不同的方法 7.3选择列表 7.4单选按钮和复选框 7.5输入字段和JiT正则表达式 7.6习题 第8章沙箱及之上的cookie、连通性和隐私 第9章基础浏览器对象 第10章DOM:文档对象模型 第11章创建定制的JavaScript对象 第12章构建动态网页:在脚本中加入样式 第13章使用Ajax 第14章好消息:生动的程序库!令人惊异的Web服务!有趣的API! 附录习题答案

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧