吴和泽 level
获赞
13
粉丝
2
关注
2
看过 TA
8
吉林师范大学
2023
前端工程师
IP属地:陕西
在努力一年
私信
关注
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
能否给我讲一下... 为什么用var的时候结果是55555  而用let声明i的时候就变成0 1 2 3 4了
卷国企:挺经典的一个题,var是函数级作用域,let是块级。for循环是块级的,var此时是在全局作用域下,相当于运行在一个全局范围的立即执行函数里。所以同步代码执行完了再执行异步代码的时候,i已经变5了。如果采用let那么for循环每次都会新创建一个变量,这样就能满足递增输出。既然知道是作用域问题,我们还可以在for循环里用立即执行函数包裹异步代码,把i作为参数传入,内部异步代码执行时候就会拿到函数作用域中的变量,也就不会出错了
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务