我想总结myArray
我声明var sumUpArray = 0
的地方。它返回myArray
的正确总和,即6。
var myArray = [1, 2, 3];
var sumUpArray = 0;
for (i = 0; i < myArray.length; i++) {
sumUpArray = sumUpArray + myArray[i];
}
console.log(sumUpArray);
&#13;
但是当我宣布var sumUpArray;
时,它会返回NaN
。
var myArray = [1, 2, 3];
var sumUpArray;
for (i = 0; i < myArray.length; i++) {
sumUpArray = sumUpArray + myArray[i];
}
console.log(sumUpArray);
&#13;
两个变量声明有什么区别?
答案 0 :(得分:1)
声明变量时
var sumUpArray;
与
相同var sumUpArray = undefined;
因此,您尝试将整数添加到未定义的结果NaN
sumUpArray = sumUpArray + myArray[i];
sumUpArray = undefined + myArray[i]; // NaN
BTW:使用let
和const
来声明变量。
答案 1 :(得分:0)
因为当您使用var sumUpArray
时,sumUpArray
为undefined
,而不是0. undefined
+任何数字都会返回NaN
。
答案 2 :(得分:0)
在第一个示例中,您声明了变量但未分配任何值,因此它以undefined
开头。我想你可能希望将它自动分配给0,但事实并非如此。
然后您尝试向其添加一些数字,但undefined + {anyNumber} = NaN
。
答案 3 :(得分:0)
var name;
已声明,但未分配或初始化或已定义,因此undefined
为var name=0;
分配了值&#39; 0&#39;。 typeof(name)会告诉你两者都有不同的类型。