JS中for...of和for...in的区别

JS中for…of和for…in的区别
for…in主要是为了遍历对象而产生,不适用于遍历数组,for…of循环可以用来遍历数组,类数组对象、字符串、、、

1)遍历对象
for…of遍历获取对象的键值,for…in获取对象的键名
for…in会遍历对象的整个原型链,for…of只遍历当前对象

2)数组的遍历
for…in返回数组中所有可枚举的属性,for…of返回数组的下表对应的属性值

        function Person(name,age,sex){
            this.name=name
            this.age=age
            this.sex=sex
        }
        Person.prototype.height=188
        var p=new Person('张三',18,'男')
        p[Symbol.iterator]=function(){
            var keys=Object.keys(this)
            var index=0
            return {
                next(){
                    if(index<keys.length){
                        return {value:p[keys[index++]],done:false}
                    }
                    else{
                        return {value:undefined,done:true}
                    }
                }
            }
        }
        for(let value of p){
            console.log(value);// 张三    18    男
        }
        for (let value in p) {
                console.log(value);//name    age    sex   height
            }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值