美文网首页让前端飞前端技术 成长之路
JavaScript中,for...in 和 for...of

JavaScript中,for...in 和 for...of

作者: 寻找自我的兔茽 | 来源:发表于2018-10-22 23:14 被阅读5次

起因

我一直分不清它们,所以专门研究对比下。

区别

1.官方说法

无论是for...in还是for...of语句都是迭代一些东西。它们之间的主要区别在于它们的迭代方式。
for...in:语句以原始插入顺序迭代对象的可枚举属性。
for...of:语句遍历可迭代对象定义要迭代的数据。

2.通俗易懂的说法

for...in:循环出的是key
for...of:循环出的是value
注意,for...ofES6新引入的特性。修复了ES5引入的for...in的不足。

示例

以下示例显示了与Array一起使用时,for...of循环和for...in循环之间的区别。

Object.prototype.objCustom = function() {}; 
Array.prototype.arrCustom = function() {};

let iterable = [3, 5, 7];
iterable.foo = 'hello';

for (let i in iterable) {
    console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

for (let i in iterable) {
    if (iterable.hasOwnProperty(i)) {
        console.log(i); // logs 0, 1, 2, "foo"
    }
}

for (let i of iterable) {
    console.log(i); // logs 3, 5, 7
}

总结

在循环对象属性的时候,使用for...in;在遍历数组的时候,使用for...of

查阅文章有:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of
https://segmentfault.com/q/1010000006658882

相关文章

  • JavaScript中,for...in 和 for...of

    起因 我一直分不清它们,所以专门研究对比下。 区别 1.官方说法 无论是for...in还是for...of语句都...

  • 详解for...in和for...of的区别

    1 前言 for...in和for...of都是JavaScript中遍历数据的方法,让我们来了解一下他们的区别。...

  • JavaScript:for...of 和 for...in 的

    无论是 for...in 还是 for...of 语句都是迭代一些东西。 它们之间的主要区别在于它们的迭代方式。...

  • for...of循环(数组)

    for...of循环可以代替数组实例的forEach方法 JavaScript 原有的for...in循环,只能获...

  • JavaScript for...in和for...of的区别

    for...in for...of的区别 for...in 循环的是key; for...of 循环的是value...

  • js 循环

    js中forEach,for in,for of循环的用法 js的 for...in 和 for...of的用法 ...

  • JavaScript中的for...in 、for...of、f

    初学javaScript的时候,我们总是容易混淆对于数组和对象的遍历方法。js中循环语句有forEach,for ...

  • for...in和for...of

    for...in 适合遍历对象/数组对象循环得到的是索引值,且是字符串类型的,普通for循环得到的索引值是数字类型...

  • for...in 和for...of

    在JavaScript中遍历数组通常是使用for循环,自ES5发布后也可以使用forEach,另外在ES5具有遍历...

  • for...in,for...of

    主要用来遍历数组和字符串,对象也可以 for...in方法针对的是有没有下标数组的情况,也适用于对象的循环遍历;f...

网友评论

    本文标题:JavaScript中,for...in 和 for...of

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