嘿,我有这段代码。我的问题是,除非我将sumNum设置为整数并且我不明白为什么,否则它将无法正常工作。
var sumNum; //var sumNum = 0;
const sumAll = function(startNum, endNum) {
for(var i = startNum; i<= endNum; i++) {
sumNum += i;
}
return sumNum;
}
答案 0 :(得分:3)
答案 1 :(得分:0)
考虑当它不是数字时会发生什么。它出现的第一个语句是-q6
。当您不将其设置为数字时,其值为sumNum += i
,因此它将计算undefined
,结果为sumNum = undefined + i
。然后是NaN
,仍然会生成sumNum = NaN + i
。
要解决此问题,您可以先检查该值,然后将其设置为NaN
(如果未定义):0
(在错误时将其设置为0)。
但是我认为您甚至都不希望它是一个全局变量,在这种情况下,您只需要在函数中声明它(最好使用常规语法声明)
sumNum = sumNum || 0