今天看啥  ›  专栏  ›  Java仓库

面试官:有了 for 循环 为什么还要 forEach ?

Java仓库  · 公众号  · 科技自媒体  · 2025-07-14 14:16
    

主要观点总结

本文讨论了for循环和forEach之间的本质区别、语法区别和性能区别,涉及可迭代对象、迭代器的概念,并通过实例展示了它们的差异。

关键观点总结

关键观点1: 本质区别

for循环是js提出时就有的循环方法,而forEach是ES5提出的,挂载在可迭代对象原型上的方法,是一个迭代器,负责遍历可迭代对象。

关键观点2: 语法区别

forEach的参数包括数组当前遍历的元素、数组当前元素的索引和当前遍历的数组,可以利用这些参数实现数组去重等功能。而for循环则更加灵活,可以控制循环的起点,可以使用break、return和continue等控制语句中断循环。

关键观点3: 性能区别

在浏览器环境和Node.js环境下,for循环的性能最好,forEach次之,map最差。因为map会返回一个新的数组,数组的创建和赋值会导致分配内存空间,带来较大的性能开销。

关键观点4: 可迭代对象和迭代器的概念

可迭代对象是ES6中引入的概念,拥有[Symbol.iterator]方法的对象被认为是可迭代的。迭代器是一种特殊对象,它的标志是返回对象的next()方法,通过不断调用并依次迭代访问内部的值。


免责声明

免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
推荐产品:   推荐产品
文章地址: 访问文章快照