八个针对高级职位的高级 JavaScript 面试题( 五 )


通常 , 开发人员已经熟悉涉及 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 面试题】如果您还有任何疑问 , 请在留言区给我们留言 , 我们一起交流学习进步 。




推荐阅读