为什么... in和for ...在相同的情况下表现不同?

时间:2017-05-23 12:51:22

标签: javascript ecmascript-6 for-in-loop for-of-loop

我阅读了for ... in和for ...的解释,然后遇到了这种情况,在同样的情况下,他们的行为有所不同。



//case1
function avg(...args) {
   var sum = 0;
   for (let value of args) {
     sum += value;
    }
    return sum / args.length;
}
console.log(avg(2,3,4,5));

//case2
const people = function(param1, param2, ...rest) {
   console.log(param1);
   console.log(param2);
   for(let i in rest) {
       console.log(rest[i]);
   }
}
people('Foo', 'Bar', 'Catz', 'Dogz');




所以,...args& ...rest是数组(对象)对吗?我认为 case1 是正确的,并且行为与许多来源中解释的相同(例如MDN for...of

它们的区别是什么,为什么在 case2 中为......而不是为......?

0 个答案:

没有答案