前言
- 我是小嘟,努力每天分享一道javascript相关的题目。
- 希望对你有所帮助。
- 觉得有用的话,请点赞支持,你的鼓励是我坚持下去的动力。
题目
var array02 = []; for(let i = 0 ;i<10;i++){ array02[i] = ()=>{ console.log("我是let i",i); } } for(var j = 0 ;j<10;j++) array02[j]();
运行结果
代码分析
- 这里引用书上的原话解释:当前的i只在本轮循环有效,所以每一次的循环的i其实都是一个新的变量。javascript引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮的基础上进行计算。
- 什么意思呢?
- 意思就是没一次循环都会let i,每次循环里边的i都是一个新变量,它的值是由javascri内部引擎计算的
- 在es6中引入了块级作用域,(
{}
,这个就算是一个块作用域) - 嘟嘟小知识 ------》for循环的作用域