我在小提琴中尝试了这个片段,它返回未定义但是根据这本书https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20&%20closures/ch1.md它应该返回4所以这是什么问题?
function foo(a) {
console.log( a + b );
}
var b = 2;
document.write(foo( 2 )); // undefined instead of 4
答案 0 :(得分:4)
当在函数中调用return语句时,执行此操作 功能停止了。如果指定,则返回给定值 功能来电。 如果省略表达式,则返回undefined 相反。
答案 1 :(得分:2)
您的函数没有返回值,而是应该执行此操作:
function foo(a) {
return a + b;
}
var b = 2;
document.write(foo( 2 ));
或者只是执行foo(2);
并检查您的控制台是否有正确的号码。
答案 2 :(得分:2)
你在函数foo中执行console.log
,它不会返回任何内容。你应该return a + b
。
答案 3 :(得分:2)
让我们看看您的代码>
你有一个当前只显示a和b之和的函数foo。 它不是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;
}