forEach, for in , for of

都可以用于遍历数组,只有 for in 能遍历对象

forEach (都能访问)

  • 三个参数,第一个value, 第二个 index, 第三个数组体(即整个数组本身)
  • 适用于 数组,set,map,不适应于 字符串,Object
  • 不能终止循环,break,continue不能使用
  • 只做遍历用,不能给数组增项删项,但可以对项本身修改
  • 效率和for循环相同 ,for (var i=0; i<arr.length;i++)

for in (访问键名)

  • 遍历数组索引、对象的属性
  • 循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。原型链上的所有属性
  • 数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”
  • 所以for…in循环主要是为遍历对象而设计的,不适用于遍历数组,但也能用只是关于索引有些麻烦
  • 输出顺序:先遍历整数属性(按照升序),然后其他属性按照创建时候的顺序遍历。Object.keys()和for in 具有相同的排列顺序
  • hasOwnProperty()方法可以检测一个属性是存在于实例中,还是存在于原型中。这个方法只在给定属性存在于对象实例中时,才会返回true。

for of (访问键值)

  • 不同于forEach方法,它可以与break、continue和return配合使用
  • 有着同for…in一样的简洁语法,但是没有for…in那些缺点
  • 遍历数组的值,对象不行
  • 是目前遍历数组最好的方法,可以用在set,map,类数组,字符串上,但是不支持原生的Object遍历。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值