关于在Firebug下let的作用域问题

新手上路,请多包涵

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

阅读 2.3k
1 个回答

var 之后生成了一个全局变量,当然可以取到了,递增的 i 还是上次 var 定义的 i,不是 let 的 i

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题