美文网首页
[JS] for...in 和for...of的区别

[JS] for...in 和for...of的区别

作者: V_Jan | 来源:发表于2018-09-25 22:04 被阅读0次

for...in 递归的对象是object的属性
for...of 递归的对象是一系列可递归的可迭代对象,例如Array,String, Map, Set等

搬官方例子过来以便参考理解:
for...in 递归object的属性:

var obj = {a: 1, b: 2, c: 3};
    
for (const prop in obj) {
  console.log(`obj.${prop} = ${obj[prop]}`);
}

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

for...of 递归Array:

let iterable = [10, 20, 30];

for (let value of iterable) {
  value += 1;
  console.log(value);
}
// 11
// 21
// 31

for...of递归String:

let iterable = 'boo';

for (let value of iterable) {
  console.log(value);
}
// "b"
// "o"
// "o"

for...of递归Map:

let iterable = new Map([['a', 1], ['b', 2], ['c', 3]]);

for (let entry of iterable) {
  console.log(entry);
}
// ['a', 1]
// ['b', 2]
// ['c', 3]

for (let [key, value] of iterable) {
  console.log(value);
}
// 1
// 2
// 3

for...of还可以递归其他的类型,请看下面的第二个链接,获取官网更多例子

参考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

相关文章

网友评论

      本文标题:[JS] for...in 和for...of的区别

      本文链接:https://www.haomeiwen.com/subject/terroftx.html