简述for in 和 for of 的区别

简介: 1、推荐在循环对象属性的时候使用 for...in,在遍历数组的时候的时候使用 for...of 2、for...in 循环出的是 key,for...of 循环出的是 value

1、推荐在循环对象属性的时候使用 for...in,在遍历数组的时候的时候使用 for...of

2、for...in 循环出的是 key,for...of 循环出的是 value

3、注意,for...of 是 ES6 新引入的特性。修复了 ES5 引入的 for...in 的不足

4、for...of 不能循环普通的对象(如通过构造函数创造的),需要通过和 Object.keys()搭配使用


for in遍历数组的毛病:

1.index索引为字符串型数字,不能直接进行几何运算

2.遍历顺序有可能不是按照实际数组的内部顺序

3.使用for in会遍历数组所有的可枚举属性,包括原型。例如上栗的原型方法method和name属性

所以for in更适合遍历对象,不要使用for in遍历数组。


那么除了使用for循环,如何更简单的正确的遍历数组达到我们的期望呢(即不遍历method和name),ES6中的for of更胜一筹.


遍历对象


遍历对象 通常用for in来遍历对象的键名

1024b19218af40c7a8a6290c6186518d.png

目录
相关文章
|
6月前
|
小程序
bindtap和catchtap的区别?
bindtap和catchtap的区别?
63 0
|
5月前
for in 和 for of的区别
for in 和 for of的区别
1368 3
|
5月前
|
索引
for each和for of的区别
for each和for of的区别
|
安全 C#
C#委托事件的区别
C#委托事件的区别
161 0
!与~有什么区别
!与~有什么区别
95 0
|
安全
s=s+1,s+=1,++1,1++没有区别?
s=s+1,s+=1,++1,1++没有区别?
|
JSON 数据格式
中writeValue和writeValueAsString的区别
writeValueAsString(obj):将传入的对象序列化为json,返回给调用者
|
JavaScript 前端开发 索引
for...in和for...of的区别
前言 在JavaScript中遍历数组通常是使用for...i循环,在ES5具有遍历数组功能的还有forEach、map、filter、some、every、reduce、reduceRight等。 for...in和for...of是两种增强型循环,for...in是ES5标准,在ES6中新增了for...of的循环方式。
114 0
for...in和for...of的区别
&和&&的区别
&和&&的区别
190 0