今天看了一篇博客,里面看到了这样的问题
文章地址https://www.jianshu.com/p/0f49c88cf169
这两个只有声明变量的方式不同,为什么最后的结果不一致,不应该都是5吗,我看了博主的解释,奈何小白,读的是一知半解,考虑以后有了一下的思路,不成熟之处欢迎指出
首先我先找了一下for循环内表达式的执行顺序,大概是这样的
for循环先执行 初始化语句,条件,循环体最后执行i++的表达式,
所以最终都会有结果5,由于var定义的是全局变量,所以i最终被修改为5,但是let方式定义的块级作用域,所以最终的结果5没有创建对应的块级作用域,所以显示的是4,