1.in/of对比
for...in...是es5出的循环方法,for...of...是es6推出的。两个都是迭代数据的。
- for...in:以任意顺序迭代对象的可枚举属性。=> 根据key值来遍历
- for...of...:遍历可迭代对象,定义要迭代的数据。
2.for...in...
//表现 let obj = { a: 1, b: '2', c: false, d: undefined, e(){}, f: { } }; obj.z = "zzz"; for(let key in obj){ console.log(key); } //a b c d e f z =>这说明for in 是根据key值遍历
2.1.mdn上对for...in...的解释
mdn的解释,可以作如下理解:
- for...in...不推荐遍历有索引对象(即,数组)
- for...in...适合用作检测对象是否存在某属性值时
- for...in...循环会遍历所有可枚举属性,而在es5之前,所有给对象原型新添加的方法都是可枚举的
3.for...of...
//表现 let array = [false, 1,"2", undefined, {}, function(){}]; for (let item of array){ console.log(item); } //false, 1, 2, undefined, {}, ƒ (){} => 不难看出
3.1.mdn上对for...of...的解释
mdn的解释,可以作如下理解:
可迭代对象都可以使用for...of...遍历循环
4.for...in...和for...of...使用区别
- for...in...:遍历具有key值的对象
- for...of...:遍历可迭代对象
参考---https://blog.csdn.net/weixin_44395929/article/details/109625882
标签:...,遍历,mdn,迭代,对象,js,循环,key From: https://www.cnblogs.com/pwindy/p/17616901.html