前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js --- for in 和 for of

js --- for in 和 for of

作者头像
小蔚
发布2019-09-11 14:37:14
1.7K0
发布2019-09-11 14:37:14
举报
文章被收录于专栏:小蔚记录

前言:for of是ES6新增的循环方法。前面已经说到了 【JavaScript】for、forEach 、for in、each循环详解。那for of又是怎么使用的?

一、使用例子

使用例子(一)

代码语言:javascript
复制
var arr = ['nick','freddy','mike','james'];
for(var item of arr){    
    console.log(item);
}

输出结果:

输出的是数组里面的值。

二、使用例子(二)

代码语言:javascript
复制
var arr = [
    { name:'nick', age:18 },
    { name:'freddy', age:24 },
    { name:'mike', age:26 },
    { name:'james', age:34 }
];
for(var item of arr){    
    console.log(item.name,item.age);
}

输出结果:

二、与for in 区别

区别①:for of无法循环遍历对象

代码语言:javascript
复制
var userMsg = {
    nick: {
        name: 'nick',
        age: 18,
        sex: '男'    
    },
    freddy: {
        name: 'freddy',
        age: 24,
        sex: '男'
    }    
};
 
for(var i1 in userMsg){
    console.log(i1);    
    for(var i2 in userMsg[i1]){
        console.log(i2+': '+userMsg[i1][i2]);
    }
}
console.log('-----------分割线-----------');
for(var item of userMsg){    
    console.log(item);
}

输出结果:

区别②:遍历输出结果不同

代码语言:javascript
复制
var arr = ['nick','freddy','mike','james'];
for(var i in arr){
    console.log(i);    
}
console.log('-----------分割线-----------');
for(var item of arr){    
    console.log(item);
}

输入结果:

不难看出,for in循环遍历的是数组的键值(索引),而for of循环遍历的是数组的值

区别③:for in 遍历定义属性,for of不会

代码语言:javascript
复制
var arr = ['nick','freddy','mike','james'];
arr.name = "数组";
 
for(var i in arr){
    console.log(i+': '+arr[i]);    
}
console.log('-----------分割线-----------');
for(var item of arr){    
    console.log(item);
}

输入结果:

给数组添加一个自定义属性name,并且赋值"数组"。然后进行遍历输出的,会发现新定义的属性也被for in输出来了,而for of并不会对name进行输出。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、使用例子
  • 二、与for in 区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档