1.for in MDN
const obj = {a:1, b:2, c:3};
for (let key in obj) {
console.log("obj." + key + " = " + obj[key]);
}
//输出
//obj.a = 1
//obj.b = 2
//obj.c = 3
2.for of MDN
for...of语句在可迭代对象(包括Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
(注:TypedArray为类数组)
for in 与 for of 的区别
-
相同点:
都是迭代一些东西
-
不同点:
for...in语句以任意顺序迭代对象的可枚举属性。for...of语句遍历可迭代对象定义要迭代的数据。
3.Object.keys MDN
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组(不包括继承原型的属性及Symbol属性),数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
Object.keys 与 for in 的区别
Object.keys()返回一个数组,数组值为对象自身的属性,不包括继承原型的属性及Symbol属性。for in遍历对象可枚举属性,包括自身属性,以及继承原型的属性。