javascript中for...of和for..in循环的区别
for…in可以用来干什么
(1)for…in最好用来遍历对象,但也可以遍历数组(有缺陷)
(2)for…in遍历的是key-value中的key值
我们先看怎么使用for…in遍历对象
const obj = { a:1, b:2, c:3 } for( var o in obj){ console.log(o); // 遍历出来的是对象中的属性,a,b,c console.log(obj[o]); // 遍历出来的是对象中属性各自对应的值1,2,3 }
需要注意的是,使用for…in遍历对象时,不仅会把对象上的属性遍历出来,还会把对象原型链上的可枚举的属性遍历出来
再看看for…in遍历数组能不能成功
const arr = [1,2,3,4,5] for(var a in arr){ console.log(a); // 输出的是数组索引 console.log(arr[a]); // 输出的是数组索引对应的值 }
结果是成功的,但又为什么说最好不要用for…in遍历数组呢?
(1)for…in遍历出的数组索引为字符串型数字,不能直接进行几何运算
(2)遍历的顺序可能不是按照实际数组的内部顺序
(3)使用for…in会遍历所有的可枚举属性,包括原型
for…of能用来做什么
(1)for…of可以用来遍历数/数组/字符串/map/set等拥有迭代器对象的集合
(2)for…of遍历出来的是key-value中的value值
// 遍历数组 var arr = [1,2,3,4,3,5,7]; for (let i of arr){ console.log(i); } // 遍历字符串 var str = 'hello' for (let s of str){ console.log(s); } // 遍历set集合 const set = new Set([1,2,3,4]) for (let s of set){ console.log(s); }
补充:
(1)for…of不能用来遍历对象,因为普通对象中没有迭代器对象
(2)与forEach()不同的是,for…of可以使用break,continue,return等语句
总结下来就是:
(1)在遍历对象时用for…in,在遍历数组时用for…of
(2)for…in遍历出的是key,for…of遍历出的结果是value。
也就是说遍历数组时,for…in遍历的是数组的索引,for…of遍历的是数组的元素值。
到此这篇关于javascript中for...of和for..in循环的区别的文章就介绍到这了,更多相关javascript for...of和for..in内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
js定义类或对象的介绍,需要的朋友可以参考下2012-08-08爬虫进阶-JS自动渲染之Scrapy_splash组件的使用
Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建,今天重点给大家介绍js Scrapy_splash组件使用教程,一起看看吧2021-09-09js常用函数push()、pop()、shift()、unshift()、slice()和splice()等详解
这篇文章主要给大家介绍了关于js常用函数push()、pop()、shift()、unshift()、slice()和splice()等的相关资料,js中数组操作函数还是非常多的,今天忽然想到来总结一下,也算是温故而知新吧,需要的朋友可以参考下2023-11-11Javascript 获取链接(url)参数的方法[正则与截取字符串]
有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值。本文给出的就是这个流程的具体实现方法。2010-02-02javascript HTML5 Canvas实现圆盘抽奖功能
这篇文章主要为大家详细介绍了javascript HTML5 Canvas实现圆盘抽奖功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-04-04
最新评论