收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 3154|回复: 4

关于for循环嵌套 变量值的改变

[复制链接]
发表于 2012-7-3 19:40:26 | 显示全部楼层 |阅读模式
像下面这样,先声明了一个变量i=0,在for循环中又套了一层for,而里面的变量也是i。

第二个循环中的 i 是第一个中的 i 吗?
如果不是,for循环在开始时会有一个隐式的变量声明?这里的 i 是局部变量,不影响外面的for循环?
如果是,第二个循环结束时,i=aA.length - 1,这样不影响第一个for循环的下一次执行吗?

不知道这属于变量作用域的问题,还是for循环每次执行时,变量值不会受其内部的影响。

 提示:您可以先修改部分代码再运行

发表于 2012-7-3 22:14:10 | 显示全部楼层
:):)路过 !
回复 支持 反对

使用道具 举报

发表于 2012-7-4 08:37:51 | 显示全部楼层
该例反映出4个问题:
1、第二个循环中的 i 是第一个中的 i 。理论上,第二个循环结束时,i=aA.length - 1,这样会影响第一个for循环的下一次执行
2、同时针对问题1,实际上,第二个循环结束时,i=aA.length - 1,这样并不会影响第一个for循环的下一次执行,为什么?(见问题3)。
3、第一循环定义在解释阶段,执行在解释阶段,第二循环定义在解释阶段,执行在事件阶段。当触发onmouseover事件之前时,第一循环已经执行完,故第二小循环不影响第一循环,但出现第4个问题。
4、只有第aA.length-1个的节点才能响应事件绑定,该问题需要用闭包来隔离作用域解决。
回复 支持 反对

使用道具 举报

发表于 2012-7-4 11:17:36 | 显示全部楼层
第一循环定义在解释阶段,执行在解释阶段,第二循环定义在解释阶段,执行在事件阶段; 这里不明白,求解
回复 支持 反对

使用道具 举报

发表于 2012-7-5 08:32:37 | 显示全部楼层
dingo3778 发表于 2012-7-4 11:17
第一循环定义在解释阶段,执行在解释阶段,第二循环定义在解释阶段,执行在事件阶段; 这里不明白,求解

第二循环定义在匿名函数中,该函数在事件触发前并未调用,该循环并未执行仅是定义。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2020-2-26 02:43 , Processed in 0.093516 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表