关于for of、for in、forEach的理解

本文详细探讨了forOf、forIn和forEach这三种遍历方式的优缺点。forOf提供了一种更简洁且支持中断的遍历方式,适合处理数组和可迭代对象;forIn主要适用于遍历对象属性,但可能遇到属性遍历顺序不固定和原型链污染问题;forEach虽然便捷,但无法中途退出或修改原集合。理解这些差异有助于选择合适的遍历方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for of、for in、forEach

以下总结了关于for of、for in、forEach的理解,个人拙见,凡有不恰当之处,欢迎留言,互相学习!
  • forEach:定义:用于调用数组的每个元素,并将元素传递给回调函数
    • 缺点:
      • 不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据
      • 方法不能使用break,continue语句跳出循环,或者使用return从函数体返回
      • 对于空数组不会执行回调函数
    • 优点:便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的效率
  • for in:定义:用于循环遍历数组或对象属性,for in循环里面的index是string类型的,代码每执行一次,就会对数组的元素和属性或者对象的属性进行一次操作
    • 缺点:
      • 某些情况下,会出现随机顺序的遍历,
      • 因为里面的值是string类型,所以增加了转换过程,因此开销较大
      • 原型上的属性也会被遍历到,需要添加自身属性判断
    • 优点:可以遍历数组的键名,遍历对象简洁方便
  • for of:定义:(可遍历map,array,set string等)用来遍历可迭代对象(迭代具有iterator接口的可迭代对象),遍历对象可通过转化为数组(Object.keys或Object.values)
    • 优点:
      • 避免了for in的所有缺点,可以使用break,continue和return,
      • 不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历最简洁,最直 接的遍历数组的语法支持map和Set对象遍历
    • 缺点:
      • 不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动 过程中动态创建的对象)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值