被let定义的i存在for循环每次独立的作用域内,该作用域下的i是几被保留住以后就是几,进行累加操作以后就会对当前各自作用域下的i发生事件。
而没有作用域限制的var所定义的i已经成为全局变量了,结果中的4是延迟5秒输出的第一个i值,此时的i并不是我们所期望的第一个for所产生的0了,因为从被var定义开始i就是一个全局的变量!
可以自己为i创建独立的函数环境,在该环境下,var的结果就可以符合预期的效果了。