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

如题所述

第1个回答  2022-07-01

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

for...in 是为遍历对象属性而构建的,它以任意顺序遍历一个对象的除 Symbol 以外的可枚举属性,可用 break 或者 throw 跳出

语法:

例子:

在 JavaScript 中,数组也是对象的一种,所以数组也是可以使用 for...in 遍历

for...of 语句在可迭代对象上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句(包括 Array , Map , Set , String , TypedArray , arguments 等等,不包括 Object ),可用 break 或者 throw 跳出。

语法:

例子:

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

下面列出遍历 Array 时候, for...in 和 for...of 的区别:

上例,通过 Array.prototype 添加了 ufo 属性,由于继承和原型链,所以 arr 也继承了 ufo 属性,属于可枚举属性,所以 for...in 会遍历出来,而 for...of 则不会。

如果看了觉得有帮助的,我是@ 鹏多多11997110103 ,欢迎 点赞 关注 评论;
END

往期文章

个人主页

相似回答