function里面的i一直为10

#js#
为什么function里面的i一直为10,不会随着for循环的变化而变化,我能理解异步操作,但是这个不是异步吧
全部评论
建议学学闭包,这是一个很常见的案例,和变量对象和作用域链有关
2 回复 分享
发布于 2023-06-17 16:50 广东
闭包函数的变量是调用时才变赋值,普通函数是定义时赋值可以这么理解吗
点赞 回复 分享
发布于 2023-07-23 00:15 湖南
let有块级作用域,产生闭包
点赞 回复 分享
发布于 2023-07-03 00:39 广西
闭包吧,result返回一个数组,数组的元素都是返回i的函数,当你去执行result[0]()的时候,就是直接返回i这个函数,那么就往上面的作用域去找这个i,由于闭包的存在,所以for循环中的i的内存不会被销毁,且经过循环之后,已经变成10,已经返回10
点赞 回复 分享
发布于 2023-06-17 17:48 江苏
因为你return 的是i呀,后面执行的时候i的最后值已经是10了
点赞 回复 分享
发布于 2023-06-16 13:07 重庆
你把var改成let就行了
点赞 回复 分享
发布于 2023-06-16 03:27 湖南

相关推荐

27届毕业,最近想找一段大厂实习,感觉简历有些问题,好多都不给面,求大佬们指点,最近好焦虑
后端劝退第91人:我从后端的角度分析一下你的第一个项目,我感觉亮点不是很突出。因为我是因为组内有需求,临时上手学react干活。我用到的技术基本就cover你那个智慧园区管理平台的很多亮点了。那作为比较专业的前端,你上述的内容是不是有点单薄呢。感觉还得包装
点赞 评论 收藏
分享
牛客83265014...:完了,连现在都没开始面,13号投的是不是晚了
秋招的第一个offer,...
点赞 评论 收藏
分享
27双非本,最近面试被挂麻了面试官说简历内容太简单了,技术栈要单独一行,各位佬有啥建议吗
LZStarV:项目太简单了,你像用什么开发的技术栈没必要写一句话,按点写就好了;有特色的比如说WebSocket、视频流这种狠狠吹,那就好看多了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务