for-of和for-in的用法和区别
2021-12-31 本文已影响0人
路人丁0417
参考 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"