Javascript作用域:为什么foo返回未定义的?

Javascript作用域:为什么foo返回未定义的?,javascript,Javascript,我在fiddle中尝试了这个片段,它返回未定义的值,但根据本书,它应该返回4,所以怎么了 function foo(a) { console.log( a + b ); } var b = 2; document.write(foo( 2 )); // undefined instead of 4 您的函数没有返回值,您应该执行以下操作: function foo(a) { return a + b; } var b = 2; document.write(foo(

我在fiddle中尝试了这个片段,它返回未定义的值,但根据本书,它应该返回4,所以怎么了

function foo(a) {
    console.log( a + b );
}

var b = 2;

document.write(foo( 2 )); // undefined instead of 4 

您的函数没有返回值,您应该执行以下操作:

function foo(a) {
    return a + b;
}

var b = 2;

document.write(foo( 2 ));
或者只执行
foo(2)并检查控制台是否有正确的号码。

如中所述:

在函数中调用return语句时,此 功能停止。如果指定,则会将给定值返回给 函数调用者如果省略表达式,则返回undefined 相反。


在函数foo中执行
console.log
,该函数不返回任何内容。您应该
返回a+b

让我们看看您的代码>

您有一个函数foo,它是当前函数,只显示a和b的和。 它不是1。把它存放在任何地方 2.还它。需要调用函数来执行某些任务并返回某些内容

console.log()

function foo(a) {
    console.log( a + b );
}
您应该做的是计算foo()中所做的数学运算,或者将其存储在变量中并返回它

function foo(a){
    c = a + b;
    console.log(c); //If you want to display it in the console in the first place.
    return c;
}

使用
return
而不是
console.log