for 循环底层原理:
<button>1</button><button>2</button><button>3</button>var btns = document.querySelectorAll('button')for(let i =0; i < btns.length; i++){
btns[i].addEventListener('click',function(){// 之所以每次都能打印出对应的索引// 是因为 let 的 块级作用域// 在循环的过程中相当于有三个 {} 出现// 每一个 {} 里面有一个 let 定义的变量 i
console.log(i)})}
当循环开始的时候
{let i
i =00< btns.length
btns[0].addEventListener('click',function(){ console.log(i)})}{let i
i =11< btns.length
btns[1].addEventListener('click',function(){ console.log(i)})}{let i
i =22< btns.length
btns[2].addEventListener('click',function(){ console.log(i)})}{let i
i =30< btns.length
结束循环
}