js里的for循环问题

img


为啥点击都是3

  1. 你循环的时候只是绑定了事件函数,但是没有对i做处理,访问的依然是函数外的for循环的i;
  2. 当你点击执行点击函数的时候,函数就会去找i,当前作用域没找到,只能去函数外找,找的时候for循环已经执行完成了,i已经变成了3.所以最终输出的都是3
  3. 解决办法,使用闭包将i留住

循环再绑定,循环到最后一步才是最终的绑定;最后一次把之前的都覆盖了

闭包问题,推荐你一篇博客,看了就懂了。
https://blog.csdn.net/Run_youngman/article/details/79105095?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164272556216780261924239%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164272556216780261924239&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-79105095.nonecase&utm_term=%E9%97%AD%E5%8C%85&spm=1018.2226.3001.4450

这里吧var i= 0 改为 let i= 0可以达到想要效果

for循环返回最终的结果?其实不然,0.000000002秒循环完,加了2秒时间停留时间,完美解决

不要忘记点赞

把var 改成let试试