Javascript for…in和.forEach()之间是否存在性能差异?

Javascript for…in和.forEach()之间是否存在性能差异?,javascript,Javascript,我很好奇,是否有人知道在特定用例或一般情况下,一个比另一个更快,以及为什么 具体来说,我指的是 for (let myVariable in myArray) { *do something* } 及 如果您使用它,它将优化您的代码和速度。As forEach循环不会像for循环那样创建外部索引。上面的更多内容将允许您轻松访问它的不同元素。对于进一步的用例,您可以访问www.javascriptinfo.com我发现一篇文章支持我的观点,即For循环必须更快,因为它们没有回调来处理,这也是我的

我很好奇,是否有人知道在特定用例或一般情况下,一个比另一个更快,以及为什么

具体来说,我指的是

for (let myVariable in myArray) { *do something* }


如果您使用它,它将优化您的代码和速度。As forEach循环不会像for循环那样创建外部索引。上面的更多内容将允许您轻松访问它的不同元素。对于进一步的用例,您可以访问www.javascriptinfo.com

我发现一篇文章支持我的观点,即For循环必须更快,因为它们没有回调来处理,这也是我的答案


for..in应用于迭代对象的键,而forEach更等同于常规for循环。for…of基本上与forEach相同--请特别注意,其中的for…in不应用于迭代索引顺序很重要的数组。此外,1的相关-可能重复不是重复问题。for…in与for循环不同。2弗拉兹,是的,这是优化。感谢您的宝贵见解。3 tymeJV感谢您帮助回答问题,而不是发表尖刻的评论或错误地将其标记为重复的Chiragkumar,就我所知,常规for循环比.forEach快,for…of甚至比这还要快。我不确定。forEach为speedHi优化了您的毛衣,请分析以下信息。foreach vs.for:性能访问集合时,foreach比基本for循环的数组访问速度快得多。然而,在访问数组时——至少对于基本数组和包装数组而言——通过索引进行访问的速度要快得多。在访问int或整数数组时,基本int数组索引的迭代器和索引访问之间的时间差比迭代器快23-40%。
myArray.forEach(myVariable => { *do something* })
myArray.forEach(myVariable => { *do something* })