Object.keys,for in,for of 的区别

203 阅读1分钟

1.for in MDN

  • for...in语句以任意顺序迭代一个对象的除 Symbol以外的可枚举属性,包括继承(继承自原型的属性)的可枚举属性。
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

(注: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 遍历对象可枚举属性,包括自身属性,以及继承原型的属性。