为什么这个Javascript函数在调用时会返回“Undefined”?

时间:2014-03-03 14:31:55

标签: javascript

我编写了以下简单的JavaScript代码。但每当我运行它时,它会显示“未定义”。

以下是代码:

function naturalSum(num1,num2) {
    var sumValue = 0;
    for (i=0;i<1000;i++)
    {
        if (i%num1 === 0 || i%num2 === 0) {
            sumValue += i ;    
        }
    }
}
document.write(naturalSum(3,5));

我想知道为什么会这样。当我没有在函数中包含代码时,代码工作正常。请帮助我。

2 个答案:

答案 0 :(得分:3)

默认情况下,JavaScript函数返回undefined,除非您显式返回。

因此,如果您希望函数返回sumValue,则应添加return sumValue;作为函数的最后一行:

function naturalSum(num1,num2) {
    var sumValue = 0;
    for (i=0;i<1000;i++)
    {
        if (i%num1 === 0 || i%num2 === 0) {
            sumValue += i ;
        }
    }
    return sumValue;
}

@AmitJoki创建了一个JSFiddle来演示:

答案 1 :(得分:1)

function naturalSum(num1,num2) 
{
    var sumValue = 0;
    for (i=0;i<1000;i++)
    {
        if (i%num1 === 0 || i%num2 === 0) 
        {
            sumValue += i ;
        }
    }
    //You forgot to return the value
    return sumValue;
}
document.write(naturalSum(3,5));