for...in和for...of使用场景差异
- 一句话:遍历对象的属性时,用
for...in
。想遍历数组中元素的值的话,用for...of
。
for...in 和 for...of的差异解析
-
for...in
是 ES5 标准,for...of
是 ES6 针对for...in的不足而补充的方法。
-
for...in
遍历的是 '键名'。for...of
遍历的是数组中元素的值。
- 当使用
for...in
遍历数组的时候,我们得到的实际上是数组的索引值(键值),同时如果数组存在别的属性的话,也会被遍历出来。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); // 0, 1, 2, "foo", "arrCustom", "objCustom"
}
for (let i of iterable) {
console.log(i); // 3, 5, 7
参考
- 简述js中 for in 与 for of 区别
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。