为了账号安全,请及时绑定邮箱和手机立即绑定

对JavaScript中的一段代码不是那么理解,求解释,为什么弹出的窗口是3?

对JavaScript中的一段代码不是那么理解,求解释,为什么弹出的窗口是3?

慕哥4957459 2018-05-24 11:42:11
<!doctype html> <html> <head><meta charset="utf-8"> <title>无标题文档</title> </head> <script type="text/javascript">     window.onload=function(){         for(var i=1;i<=2;i++){             document.getElementById("b"+i).addEventListener("click",function(){alert(i);},false);         }     }     </script>     <body>     <button id="b1">button1</button> <button id="b2">button2</button> </body> </html>
查看完整描述

3 回答

?
随便戳两下

TA贡献1条经验 获得超0个赞

要回答你的这个问题,首先需要知道for循环的执行顺序,首先,初始化一个i变量为1,然后拿1和第二个条件i<=2比较是否为true,是的话,进入代码块执行内部,然后再执行i++,这个时候i为2,再次执行上面的流程,然后i为3,也就是说这个时候var i =3,不满足第二个条件,这个时候绑定的点击事件会首先在代码块内部寻找i变量的值,个人建议你如何真想理解,先去看看java虚拟机是如何执行拆解for循环的,原理和这个的差不多

查看完整回答
反对 回复 2018-05-25
?
落叶1111

TA贡献57条经验 获得超9个赞

for循环时瞬间执行完的,这是i已经变为3了

查看完整回答
反对 回复 2018-05-24
  • 3 回答
  • 0 关注
  • 1282 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信