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

一、使用例子

使用例子(一)

var arr = ['nick','freddy','mike','james'];
for(var item of arr){    console.log(item);
}

输出结果:

输出的是数组里面的值。

二、使用例子(二)

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无法循环遍历对象

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);
}

输出结果:

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

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不会

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进行输出。

转载于:https://www.cnblogs.com/yuerdong/p/9713422.html

js --- for in 和 for of相关推荐

  1. 在js中使用HashMap数据结构,在js中使用K,V数据结构

    首先是定义一个HashMap方法,做基类(复制在js中即可,然后引用) //简单的哈希表,begin function HashMap() {/** Map 大小 * */var size = 0;/ ...

  2. js校验复选框(多选按钮)是否被选中的方法

    js校验复选框是否被选中的方法 方法一:(使用下标进行标记) if ($("#checkbox-id")get(0).checked) {// do something } 方法二 ...

  3. form表单提交前进行ajax或js验证,校验不通过不提交

    在使用form表单进行提交数据前,需要进行数据的校验->表单的校验(如:两次密码输入是否相同)+后台数据的校验(如:账号是否存在),这个时候,如果哪步校验不通过,表单将停止提交,同时避免后台主键 ...

  4. 终止js程序执行的方法

    js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...

  5. JS Uncaught SyntaxError:Unexpected identifier异常报错原因及其解决方法

    最近在写ajax的时候,调用js方法,遇到了Uncaught SyntaxError:Unexpected identifier异常报错,开始搞不清原因,很苦恼. 以为是js方法参数个数和长度的问题, ...

  6. 用js方法做提交表单的校验

    基础知识: 原始提交如下: <form action="<%=basePath %>puser/register" method="post" ...

  7. 【JavaScript总结】JavaScript语法基础:JS高级语法

    作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...

  8. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  9. js获取html代码中所有图片地址

    /** * JS获取html代码中所有的图片地址 * @param htmlstr * @returns imgsrcArr 数组 */ function getimgsrc(htmlstr) { v ...

  10. Node.js 简单入门

    目录 一. 什么是Nodejs 二. Nodejs组成图(对比jdk) 三. Nodejs的安装 四. 第一个Nodejs程序 五. Node实现请求响应 六. Node操作MYSQL数据库 1. 安 ...

最新文章

  1. poj2155(二维树状数组)
  2. 推荐一个XNA的学习站点
  3. codeforces 872 D. Something with XOR Queries(思维)
  4. csdn开发者报告中学习到的新知识
  5. cesium 设置时间_Cesium应用篇:3控件(1)Clock
  6. Java中的PriorityBlockingQueue
  7. Linux 系统调用 Ptrace 详解
  8. domino缺省注册服务器或无法访问,Domino服务器挂起时的现象
  9. 机器学习模型的可解释性
  10. Android平台_驱动_SD_软件 概要设计说明书
  11. GB28181-2016系统相关技术介绍
  12. 天天生鲜项目 python邮箱_Django之天天生鲜项目
  13. 人口模型(Malthus+Logistic)附Matlab代码
  14. visio怎么画球_cad怎么画装配图
  15. 颜色空间的几种表示方法
  16. 正版软件 - AxMath 专业的数学公式编辑器带计算功能 数学公式编辑器首选工具
  17. 概率论中PDF、PMF和CDF的区别与联系
  18. MATLAB/Simulink模型开发乐高EV3 双足平衡机器人
  19. 联想笔记本的3.5mm耳机孔 没有声音!!!
  20. Python数据处理基础操作

热门文章

  1. python各个解释器的用途-Python解释器有哪些?Python解释器种类
  2. python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
  3. python timer使用-Python timer定时器两种常用方法解析
  4. python读文件每一行、并把这行替换-Python按行读文件
  5. php on duplicate key,php – ON DUPLICATE KEY UPDATE值;两次插入相同的值
  6. 井下三专两闭锁的内容_矿用高压防爆开关:煤矿井下高低压防爆开关五防电子锁保护装置...
  7. 用ZipInputStream和ZipOutputStream实现文件及文件夹的压缩解压
  8. Activity的使用(四):两个activity的交互
  9. 使用iframe call server及iframe target使用例
  10. php学习之Model类