Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除非等于0,否则声明变量无效_Javascript - Fatal编程技术网

Javascript 除非等于0,否则声明变量无效

Javascript 除非等于0,否则声明变量无效,javascript,Javascript,嘿,我有这段代码。我的问题是,除非我将sumNum设置为整数,否则它不会工作,我不明白为什么 var sumNum; //var sumNum = 0; const sumAll = function(startNum, endNum) { for(var i = startNum; i<= endNum; i++) { sumNum += i; } return sumNum; } var-sumNum//var sumNum=0; const

嘿,我有这段代码。我的问题是,除非我将sumNum设置为整数,否则它不会工作,我不明白为什么

var sumNum; //var sumNum = 0;

const sumAll = function(startNum, endNum) {
    for(var i = startNum; i<= endNum; i++) {
        sumNum += i;
    }
    return sumNum;
}
var-sumNum//var sumNum=0;
const sumAll=函数(开始、结束){

对于(var i=startNum;i,如果不定义,则隐式为其赋值

对它的数学运算将导致


console.log(未定义+1)
想想当它不是一个数字时会发生什么。它出现的第一个语句是
sumNum+=i
。当你没有将它设置为一个数字时,它的值是
undefined
,因此它计算
sumNum=undefined+i
,结果是
NaN
。然后是
sumNum=NaN+i
,它仍然会继续运行它位于
NaN

要修复它,您可以检查之前的值,如果未定义,则将其设置为
0
sumNum=sumNum | | 0
(当falsy时将其设置为0)

但我认为您甚至不希望它是一个全局变量,在这种情况下,您只需要在函数中声明它(最好使用常规语法声明)

函数sumAll(startNum,endNum){
var-sumNum=0;

对于(var i=startNum;i如果不将变量声明为零,则将向
未定义的
中添加某些内容,从而导致非数字。为什么要使用全局变量?在循环之前的函数内部使用
让sumNum=0
——尽管对于这种特殊情况,为什么不完全跳过循环并使用已知的数学公式r给定范围内所有整数的总和?我正在做的练习希望我使用循环。我在循环之外声明了我的变量,因为我认为一旦我完成了循环,就不能返回它。为输入干杯,但我不认为这是这里发生的事