简述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

目录
相关文章
|
1月前
|
索引
for in 和 for of的区别
for in 和 for of的区别
|
1月前
|
小程序
bindtap和catchtap的区别?
bindtap和catchtap的区别?
16 0
知识和智慧的联系和区别
知识和智慧的联系和区别
|
11月前
|
存储
逻辑移位与算术移位的区别
用一句简单的话来说就是:逻辑移位不需要考虑符号位,算术移位需要考虑符号位,我们都知道。数在计算机中都是以补码的形式来存储的,这才造成了逻辑移位和算术移位的的差别。
251 0
|
JSON 数据格式
中writeValue和writeValueAsString的区别
writeValueAsString(obj):将传入的对象序列化为json,返回给调用者
|
算法 编译器 Linux
C与C++的区别
C与C++的区别
98 0
|
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的循环方式。
87 0
for...in和for...of的区别
<T>和<?>区别
简要讲述一下<T>和<?>区别,以及<T>的用法
<T>和<?>区别