Declaring a variable doesnt work unless it equals 0
本问题已经有最佳答案,请猛点这里访问。
嘿,我有这段代码。我的问题是,除非我将sumnum设置为一个整数,并且我不明白为什么它不能工作。
1 2 3 4 5 6 7 8 | var sumNum; //var sumNum = 0; const sumAll = function(startNum, endNum) { for(var i = startNum; i<= endNum; i++) { sumNum += i; } return sumNum; } |
如果您没有定义,那么会隐式地为它分配一个值
对它的数学运算将导致
1 | console.log(undefined+1) |
想想当它不是数字时会发生什么。它在中出现的第一个语句是
要修复它,您可以检查之前的值,如果该值未定义,则将其设置为
但我认为您甚至不希望它是全局变量,在这种情况下,您只需要在函数内部声明它(最好使用普通语法声明它)。
1 2 3 4 5 6 7 8 9 | function sumAll(startNum, endNum) { var sumNum = 0; for (var i = startNum; i <= endNum; i++) { sumNum += i; } return sumNum; } console.log(sumAll(1, 3)); |
号