var名称之间的区别;和var name = 0;

时间:2018-03-15 16:52:46

标签: javascript variables

我想总结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;
&#13;
&#13;

但是当我宣布var sumUpArray;时,它会返回NaN

&#13;
&#13;
var myArray = [1, 2, 3];
var sumUpArray;

for (i = 0; i < myArray.length; i++) {
  sumUpArray = sumUpArray + myArray[i];
}

console.log(sumUpArray);
&#13;
&#13;
&#13;

两个变量声明有什么区别?

4 个答案:

答案 0 :(得分:1)

声明变量时

var sumUpArray;

相同
var sumUpArray = undefined;

因此,您尝试将整数添加到未定义的结果NaN

sumUpArray = sumUpArray + myArray[i];
sumUpArray = undefined + myArray[i]; // NaN

BTW:使用letconst来声明变量。

答案 1 :(得分:0)

因为当您使用var sumUpArray时,sumUpArrayundefined,而不是0. undefined +任何数字都会返回NaN

答案 2 :(得分:0)

在第一个示例中,您声明了变量但未分配任何值,因此它以undefined开头。我想你可能希望将它自动分配给0,但事实并非如此。

然后您尝试向其添加一些数字,但undefined + {anyNumber} = NaN

答案 3 :(得分:0)

var name;已声明,但未分配或初始化或已定义,因此undefinedvar name=0;分配了值&#39; 0&#39;。 typeof(name)会告诉你两者都有不同的类型。