谁能解释为什么返回值是NaN的第一个例子?第二个例子很好。
例如:1
function mul(a,...b){
for (var i=0; i<b.length; i++);
return b[i] *= a;
}
例如:2
function mul(a,...b){
for (var i=0; i<b.length; i++)
b[i] *= a;
return b;
}
console.log(mul(2,1,1,1));
最佳答案
因为在第一个示例中b[i]
是undefined
。
假设您要遍历长度为3的数组。在循环中,索引i
涵盖:0、1、2
但是,在循环的最后一次迭代之后,i
已再次增加,现在为3
。如果b[3]
的长度为3,则尝试访问b
时,则未定义。并在数学运算中使用undefined会生成NaN
。
for (var i=0;i<b.length;i++); // i loops from 0 to the length of the array
return b[i]*=a; // i is now outside the bounds of the array
关于javascript - 谁能解释为什么返回值是NaN的第一个例子?第二个例子很好,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42287083/