【JS函数的执行时机】案例一
for(var i = 0;
i<6;
i++){
setTimeout(()=>{
console.log(i)
},0)
}
- 以上代码会打印出6个6, 原理是:setTimeout会等到当前代码的for循环执行完了,再去执行console.log(i)
- 而for循环执行完之后,i已经是6了
- 所以会打印出6个6
如果希望在for循环使用settimeout时,能够依次打印出0,1,2,3,4,5
用Let就可以了,let 会单独创建一个作用域 相当于有6个 i
for(let i = 0;
i<6;
i++){
setTimeout(()=>{
console.log(i)
},0)
}
推荐阅读
- 理解 JavaScript 中的内存管理(Memory Management)
- webpack5资源最佳加载方案
- cto标题测试uuu
- 几个关于运算符优先级的陷阱
- JS对象增删改查
- 盘口搭建源码时飞鸟系统JavaScript是如何在微投后台工作的
- Typescript — Type Guard、Narrowing 知多少
- 【开发日记】Nacos安装踩坑日记
- 如何实现一个能精确同步滚动的Markdown编辑器