通常 , 开发人员已经熟悉涉及 let 关键字的解决方案 。然而 , 面试有时会更进一步 , 挑战你在不使用 let 的情况下解决问题 。在这种情况下 , 另一种方法是通过立即调用循环内的函数(IIFE)来创建闭包 。这样 , 每个函数调用都有自己的 i 副本 。您可以这样做:
const arr = [10, 12, 15, 21];for (var i = 0; i < arr.length; i++) {(function(index) {setTimeout(function() {console.log('Index: ' + index + ', element: ' + arr[index]);}, 3000);})(i);}
在此代码中 , 立即调用的函数 (function(index) { ... })(i); 为每次迭代创建一个新范围 , 捕获 i 的当前值并将其作为索引参数传递 。这确保每个回调函数都有自己单独的索引值 , 防止与闭包相关的问题并为您提供预期的输出:
Index: 0, element: 10Index: 1, element: 12Index: 2, element: 15Index: 3, element: 21
最后总结以上就是我今天这篇文章想与您分享的8个关于JS的前端面试题 , 我希望这篇文章对您的面试准备之旅有所帮助 。
【八个针对高级职位的高级 JavaScript 面试题】如果您还有任何疑问 , 请在留言区给我们留言 , 我们一起交流学习进步 。
推荐阅读
- 高级分析可以帮助快速检测内部威胁
- 《第八个嫌疑人》首映!观众评价一边倒,理由出奇一致
- 《第八个嫌疑人》首映,张颂文缺席、孙阳内八,观众评价引热议
- 九月钓鱼最好用的几种饵料,针对各种鱼情
- 当代资本审美与煤老板审美哪个更高级?同一角色对比下,差距明显
- 吃素菜的八个误区
- 庾澄庆回应《好声音》50W转腚费!承认李玟被针对,话里有话
- 对付高级绿茶的最好方法
- 威尼斯电影节红毯秀盘点,国内外女星大PK ,高级感slay全场
- 文艺高逼格的店铺名字 高级文艺有创意的店铺名