javascript总for of和for in的区别?
for in是ES5标准,for of是ES6标准;
for in是遍历对象属性,for of是遍历对象元素。
for of兼容性还不够,移动端安卓微信浏览器貌似不支持,苹果的可以;web端IE支持也不够,chrome可以。
先说结论:
推荐在循环对象属性的时候,使用
for...in
,在遍历数组的时候的时候使用for...of
。for...in
循环出的是key,for...of
循环出的是value注意,
for...of
是ES6新引入的特性。修复了ES5引入的for...in
的不足for...of
不能循环普通的对象,需要通过和Object.keys()
搭配使用
var student={name:'wujunchuan',age:22,locate:{country:'china',city:'xiamen',school:'XMUT'} } for(let key in student){console.log(key); //输出的是属性 console.log(student[key]); //输出的是属性值 }//name age locate
var student={name:'wujunchuan',age:22,locate:{country:'china',city:'xiamen',school:'XMUT'} } for(let key of Object.keys(student)){console.log(key); //使用Object.keys()方法获取对象key的数组 console.log(student[key]) ;//输出的是属性值 }
var arr= ['a','b','c'] for(let key in arr){console.log(key);//输出的是 键名 0 1 2console.log(arr[key]);//输出的是 键值 a b c }
var arr= ['a','b','c','d','e'] for(let value of arr){console.log(value);//输出的是 键值 a b c d e }
var arr= ['a','b','c','d','e'] for(let key of arr.keys()){console.log(key);//输出的是键名 0 1 2 3 4 }
var arr= ['a','b'] for(let case of arr.entries()){console.log(case);//输出的是键值对 [0,'a'] [1,'b'] }
转载于:https://www.cnblogs.com/jkr666666/p/8033714.html
javascript总for of和for in的区别?相关推荐
- java两字符串是否相等_Java与JavaScript中判断两字符串是否相等的区别
JavaScript是一种常用的脚本语言,这也决定了其相对于其他编程语言显得并不是很规范.在JavaScript中判断两字符串是否相等 直接用==,这与C++里的String类一样.而Java里的等号 ...
- html5有foreach吗,JavaScript中的map()和forEach()有什么区别?
来源:https://medium.com/better-programming,作者:Moon,翻译:公众号<前端全栈开发者> JavaScript中一些最受欢迎的功能可能是map和fo ...
- JavaScript中的name和classname有什么区别
JavaScript 中的 name 和 className 有如下区别: name 属性通常用于表示 HTML 元素的名称,如表单元素中的 input 元素.它可以用于给服务器发送数据. class ...
- 你可能不知道系列--JavaScript严格模式与非严格模式的区别
对于 JavaScript 严格模式与非严格模式的区别,强烈建议大家去查看权威文档 MDN: 严格模式,不要乱找百度,本文也主要是参考了 MDN 上对 JS 严格模式 的介绍. 首先,严格模式通过抛出 ...
- JavaScript、ES5和ES6的介绍和区别
JavaScript简介 JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来给HTML网页增加动态功能. JavaScript由三部分组成: ECMAScript(核心)+DOM ...
- Javascript 中 null、NaN和undefined的区别
1.类型分析: js中的数据类型有undefined,boolean,number,string,object等5种,前4种为原始类型,第5种为引用类型. 代码 var a1; var a2 = tr ...
- html中事件调用JavaScript函数时有return与没有return的区别
2019独角兽企业重金招聘Python工程师标准>>> JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置. ...
- JavaScript中的数组与伪数组的区别
在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function). 基本数据类型:String,boolean,Number,Undefined, Null 引用数 ...
- JavaScript中call()和apply()的用法及区别
call(), apply()都属于Function.prototype的一个方法.它们有相同点也有不同点. 相同点: 1.产生的效果和作用是完全相同的: 2.至少有一个参数,第一个参数必须是一个对象 ...
最新文章
- jQuery addClass,removeClass,class属性增删
- 如何在JAVA代码中执行 exec master..xp_cmdshell @cmd // 当作SQL语句调用就成了 或者调用 Runtime.getRuntime().exec
- python第三方库numpy-Python第三方库之Numpy库
- 技术深扒丨没点想象力都看不透这个网站的反爬措施!
- 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...
- leetcode 1489. 找到最小生成树里的关键边和伪关键边(并查集)
- mysql数据修改-DEDE
- 编程道场_编码道场教给我有关敏捷的知识
- matlab中ifelse能嵌套吗,嵌套if语句(nested if statements)
- HTML的基本知识-和常用标签-以及相对路径和绝对路径的区别
- 在doPost,service等方法里配置字符编码过滤器,防止出现中文乱码
- 阿里云张献涛:2021 弹性计算发生了哪些变化
- android 音效,音效 | Android 开源项目 | Android Open Source Project
- 还在纠结报表工具选型吗
- 中国象棋(人机博弈)
- SPSS在物流业中的应用
- linux 启动服务 sys,从磁盘启动的过程与SYSLINUX
- 如何在Google Chrome中手动设置位置信息
- 你觉得学 Python 还是 Java 更好找工作?
- 22222222222
热门文章
- 强健程序员体魄————减脂原理
- linux一级常用目录,小蚂蚁学习Linux(3)——Linux一级目录说明和常用命令解释...
- latex 图片大小_用LaTeX写作业——插入图片(二)
- stm32 USART
- StringBuffer和StringBuild
- 2016宁波计算机程序复赛,宁波第31届中小学生计算机程序设计竞赛复赛试题小学组.PDF...
- 关于 mac m1 xcode12 编译报错 this target. for architecture arm64等问题解决方案
- MySQL 条件查询
- Jsoup设置元素的文本内容
- Java - 计算不同字符或数字的个数