JavaScript的ES6之f⽤法与in区别
在对数组或对象进⾏遍历时,我们经常会使⽤到两种⽅法:in和f,那么这两种⽅法之间的区别是什么呢?
第⼀:in
下⾯我们简单的使⽤in分别对对象和数组在⾕歌的控制台进⾏遍历:
⾸先遍历对象:
接着遍历数组:
我们发现,使⽤in进⾏遍历时,item值为对象的key,为数组的index。
我们知道,数组索引只是具有整数名称的枚举属性,并且与通⽤对象属性相同,因此不能保证in以某种固定的顺序返回索引,因此,不推荐使⽤in进⾏数组的遍历
下⾯,我们在上⾯代码的基础上,在arr数组上增加⼀个⾃定义属性,再次遍历,查看结果。
我们发现,in不仅会遍历数组中的元素,还会遍历⾃定义属性
indexof的用法javascript第⼆:f
同样的,我们还是使⽤与in相同的代码进⾏测试
我们可以看出,使⽤f对对象进⾏遍历时,报了TypeError: obj is not iterable错误,对数组进⾏遍历时,item直接是数组每⼀项的值。
我们再为arr增加⾃定义属性,查看效果。
总结
根据以上测试结果并参考了相关资料,我们得出了以下结论:
1. 遍历对象时推荐使⽤in,其中item为对象的key。使⽤f会报错。
2. 遍历数组时推荐使⽤f,其中item为数组每⼀项的值。使⽤in则不能保证遍历顺序且会遍历
出⾃定义属性。
3. in是ES5特性,f是ES6特性,因此需要注意兼容性。
4. 如果要使⽤f遍历普通对象,需要配合Object.keys()⼀起使⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论