这个问题说简单也很简单,说难也不难。这篇文章只是加深这两种工作方式的不同。
相同点:检查数组或对象的语句,
工作方式:
- for...in循环
遍历对象的可枚举属性,这个循环对象本身的所有可枚举属性,以及对象从其构造的原型继承属性 例如:
let person = { firstName: "GeeksforGeeks", lastName: "A Computer Science Portal for Geeks", rank: 43 };
let userId = "";
let i;
for (i in person) {
userId += person[i];
console.log(userId); // 输出 "GeeksforGeeks", "GeeksforGeeksA Computer Science Portal for Geeks", "GeeksforGeeksA Computer Science Portal for Geeks43"
}
2.for…of循环
for...of语句让你可以遍历可迭代的数据结构,如数组、字符串、映射、节点列表等][。它调用一个自定义的迭代钩子,并遍历该钩子生成的对象的值]。例如
let text = ["GeeksforGeeks", " A Computer Science Portal for Geeks ", "43"];
let userId = "";
let i;
for (i of text) {
userId += i;
console.log(userId); // 输出 "GeeksforGeeks", "GeeksforGeeks A Computer Science Portal for Geeks ", "GeeksforGeeks A Computer Science Portal for Geeks 43"
}
总的来说,for...in返回可迭代对象的键列表,而for...of返回被迭代对象的数值属性和列表。两种方法各有千秋,