for-of和for-in的用法和区别

参考 MDN

for-in:以“任意顺序”遍历一个对象的除symbol以外的可枚举属性,包括继承的可枚举属性。

语法:for(let key in object) {}

如果只想遍历对象本身的属性,可以用getOwnPropertyNames()或执行hasOwnProperty()来确认某属性是否是对象本身的属性

建议:不建议对数组使用(因为数组是有序的,但是也可以对数组使用)

var obj = {a:1, b:2, c:3};

for (var prop in obj) {
  console.log("obj." + prop + " = " + obj[prop]);
}

// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

for-of:在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象,显式实现可迭代协议的对象等等)上创建一个迭代循环

语法:for(let value of object) {}

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}

// expected output: "a"
// expected output: "b"
// expected output: "c"

你可能感兴趣的:(for-of和for-in的用法和区别)