JavaScript遍历方法比较

本文探讨了JavaScript中的遍历机制,强调了ES6中[Symbol.iterator]接口的重要性,使得多种对象可被遍历。同时,对比了for...of循环和forEach方法在遍历对象和数组时的区别,指出for...of能遍历可枚举属性,但无法遍历不可枚举的内部方法和属性,而forEach专门用于数组遍历,但不支持提前退出循环。
摘要由CSDN通过智能技术生成
  • for...of : (ES6)提供统一的遍历机制,所有实现了[Symbol.iterator]接口的对象都可以被遍历。可迭代对象包括 ArrayMapSetStringTypedArrayarguments 对象等,Object不是可迭代对象。
    这里写图片描述

  • for...in : 循环以任意序遍历一个对象的可枚举属性,功能类似于Object.keys()。对象的有些属性以相同的方式标记成了只读的,永久的即不可删除的或者不可列举的,这些属性使用这种循环不能枚举出来,比如length、constructor以及StringindexOf() 方法或 ObjecttoString()方法。用户定义的属性都可以枚举,但是内部属性以及所有的内部方法都是不可枚举的。另外对象可以继承其他对象的属性,那些已继承的用户定义的属性可以使用该方法循环枚举出来。因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。因此当迭代访问顺序很重要的数组时,最好用整数索引去进行for循环(或者使用 Array.prototype.forEach()for...of 循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值