js --- for in 和 for of
前言: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相关推荐
- 在js中使用HashMap数据结构,在js中使用K,V数据结构
首先是定义一个HashMap方法,做基类(复制在js中即可,然后引用) //简单的哈希表,begin function HashMap() {/** Map 大小 * */var size = 0;/ ...
- js校验复选框(多选按钮)是否被选中的方法
js校验复选框是否被选中的方法 方法一:(使用下标进行标记) if ($("#checkbox-id")get(0).checked) {// do something } 方法二 ...
- form表单提交前进行ajax或js验证,校验不通过不提交
在使用form表单进行提交数据前,需要进行数据的校验->表单的校验(如:两次密码输入是否相同)+后台数据的校验(如:账号是否存在),这个时候,如果哪步校验不通过,表单将停止提交,同时避免后台主键 ...
- 终止js程序执行的方法
js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...
- JS Uncaught SyntaxError:Unexpected identifier异常报错原因及其解决方法
最近在写ajax的时候,调用js方法,遇到了Uncaught SyntaxError:Unexpected identifier异常报错,开始搞不清原因,很苦恼. 以为是js方法参数个数和长度的问题, ...
- 用js方法做提交表单的校验
基础知识: 原始提交如下: <form action="<%=basePath %>puser/register" method="post" ...
- 【JavaScript总结】JavaScript语法基础:JS高级语法
作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...
- 【JavaScript总结】JavaScript语法基础:JS编码
运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...
- js获取html代码中所有图片地址
/** * JS获取html代码中所有的图片地址 * @param htmlstr * @returns imgsrcArr 数组 */ function getimgsrc(htmlstr) { v ...
- Node.js 简单入门
目录 一. 什么是Nodejs 二. Nodejs组成图(对比jdk) 三. Nodejs的安装 四. 第一个Nodejs程序 五. Node实现请求响应 六. Node操作MYSQL数据库 1. 安 ...
最新文章
- poj2155(二维树状数组)
- 推荐一个XNA的学习站点
- codeforces 872 D. Something with XOR Queries(思维)
- csdn开发者报告中学习到的新知识
- cesium 设置时间_Cesium应用篇:3控件(1)Clock
- Java中的PriorityBlockingQueue
- Linux 系统调用 Ptrace 详解
- domino缺省注册服务器或无法访问,Domino服务器挂起时的现象
- 机器学习模型的可解释性
- Android平台_驱动_SD_软件 概要设计说明书
- GB28181-2016系统相关技术介绍
- 天天生鲜项目 python邮箱_Django之天天生鲜项目
- 人口模型(Malthus+Logistic)附Matlab代码
- visio怎么画球_cad怎么画装配图
- 颜色空间的几种表示方法
- 正版软件 - AxMath 专业的数学公式编辑器带计算功能 数学公式编辑器首选工具
- 概率论中PDF、PMF和CDF的区别与联系
- MATLAB/Simulink模型开发乐高EV3 双足平衡机器人
- 联想笔记本的3.5mm耳机孔 没有声音!!!
- Python数据处理基础操作
热门文章
- python各个解释器的用途-Python解释器有哪些?Python解释器种类
- python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
- python timer使用-Python timer定时器两种常用方法解析
- python读文件每一行、并把这行替换-Python按行读文件
- php on duplicate key,php – ON DUPLICATE KEY UPDATE值;两次插入相同的值
- 井下三专两闭锁的内容_矿用高压防爆开关:煤矿井下高低压防爆开关五防电子锁保护装置...
- 用ZipInputStream和ZipOutputStream实现文件及文件夹的压缩解压
- Activity的使用(四):两个activity的交互
- 使用iframe call server及iframe target使用例
- php学习之Model类