这段代码输出嘞 就是999999999(九个九)
解释一 : setTimeout是异步函数 每执行一个i 都会产生一个setTimeout函数 ,当 i 循环到9了,才开始执行setTimeout,,也就产生了 九个九
解释二 : var i ,,i 为全局变量,也就是说 i 唯一,每变化一次 i ,,,,i 值都变换一次,所以最后执行的出来的结果 i 都为9
总结解释: 因为i是全局变量 ,JavaScript是单线程的语言,当for循环结束后才会执行 环境区域里的函数,所以最后输出的都是9
a[0]()........a[8]() 输出的结果也都为9怎样能输出0~9呢
方法一: for 循环的内部使用闭包
方法二: var 全局变量换为let 局部变量
..............................................
分享结束 下次见哈`~~~~.
如有错误或者其他见解可评论~~~~~