ES6 for of 的使用

ES6 for of 的使用

一、for of多用于循环遍历数组,因为他能直接获取数组每位的值,而不是像for in一样先获取索引再获取值

let arr = ['a','b','c'];
for(let item in arr){
	console.log(item);//a  b  c
}

二、for of 不能直接遍历对象,但通过手动实现迭代器接口是可以的
该例子来自ES6系列教程第二篇–Iterator 详解


var obj={
    0:"rrr",
    1:"444",
    //实现[Symbol.iterator]属性方法
    [Symbol.iterator]:function(){
        const self = this;
        let index=0;
        return {
          next:function(){//实现next
            if(index<2){
              return {//遍历中
                value:self[index++],
                done: false//表示遍历没有结束,done设置为fasle
              }
            }else{
              return{//遍历结束
                value:undefined,//结束后,返回undefined
                done: true//done设置为true,表示遍历结束
              }
            }
          }
        }
     } 
    };
   for(var value of obj){
     console.log(value);//"rrr","444"
   }

三、for of可以用于遍历Map、Set、NodeList(DOM对象集合)
四、for of循环遍历数组时只能遍历出数字为下标(0~2的32次方)的值,for in可以遍历出自定义下标的值。

let arr = [1,2,3];
arr.name = 'a';
arr[-1] = 12;
for(let i in arr){
    console.log(i,arr[i]);
}
console.log('-------');
for(let i of arr){
    console.log(i);
}

输出如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值