如图所示,刚开始在for循环语句块中使用let声明变量i,跟预期一样,在语句块外面无法获取i的值。然后我把let换成var之后便可以在外面获取到i的值了,到这为止都很正常。然而诡异的事情发生了,再把var换回let时,居然在语句块外面能访问到i的值了!而且i的上一次结果还被保留了!实现了在语句块外面递增!这是个什么情况?!用的是Firefox 47.0.1
var 之后生成了一个全局变量,当然可以取到了,递增的 i 还是上次 var 定义的 i,不是 let 的 i