Javascript iLife是否总是返回未定义的值?
在下面截取的代码中,为什么变量foo的内容没有定义?我在期待我们的生命声明会有回报Javascript iLife是否总是返回未定义的值?,javascript,Javascript,在下面截取的代码中,为什么变量foo的内容没有定义?我在期待我们的生命声明会有回报 var foo = (function (){ var a=8; console.log("hi"); })(); 您正在调用的表达式中的函数没有返回任何值,因此foo未定义。如果它返回一个值,那么foo将包含该值 var foo = (function(){ var a = 8; console.log("hello"); return "world"; })() co
var foo = (function (){
var a=8;
console.log("hi");
})();
您正在调用的表达式中的函数没有返回任何值,因此
foo
未定义。如果它返回一个值,那么foo
将包含该值
var foo = (function(){
var a = 8;
console.log("hello");
return "world";
})()
console.log(foo);//world
您正在调用的表达式中的函数没有返回任何值,因此
foo
未定义。如果它返回一个值,那么foo
将包含该值
var foo = (function(){
var a = 8;
console.log("hello");
return "world";
})()
console.log(foo);//world
如果没有
return
语句,它将始终返回undefined
。你到底为什么期望函数调用返回一些东西?我期望生命是某种东西的结果。与foo=function(){var a=0;}一样,默认情况下,所有函数(包括IIFE)在JavaScript中返回undefined
,除非使用return
语句。如果使用foo=function(){var a=0;}
您正在将函数分配给foo
,因此当您登录foo
时,您当然会得到一些东西(您得到了函数);但是没有返回任何内容,也没有调用任何函数;这只是一项普通的任务。如果随后调用该函数并记录结果,您将得到undefined
,因为该函数也没有返回语句(console.log(foo());//undefined
)。另一种方法是:var foo=function(){…}()
只是表达var foo=function(){…}的一种更简洁的方式;foo=foo()
@Paulpro我希望你能把它变成一个答案,这样人们会投票给它,未来的读者会喜欢更规范的答案。如果没有返回
语句,它总是返回未定义的
。你到底为什么期望函数调用返回一些东西?我期望生命是某种东西的结果。与foo=function(){var a=0;}一样,默认情况下,所有函数(包括IIFE)在JavaScript中返回undefined
,除非使用return
语句。如果使用foo=function(){var a=0;}
您正在将函数分配给foo
,因此当您登录foo
时,您当然会得到一些东西(您得到了函数);但是没有返回任何内容,也没有调用任何函数;这只是一项普通的任务。如果随后调用该函数并记录结果,您将得到undefined
,因为该函数也没有返回语句(console.log(foo());//undefined
)。另一种方法是:var foo=function(){…}()
只是表达var foo=function(){…}的一种更简洁的方式;foo=foo()
@Paulpro我希望你能把它变成一个答案,这样人们会对它进行投票,未来的读者会喜欢更规范的答案当我把它传递到我的控制台(chrome)时,它会返回//world//undefined
为什么它会返回“undefined”?(抱歉,我仍在学习基础知识:))当我将其传递到我的控制台(chrome)时,它返回//world//undefined
为什么它返回“undefined”?(对不起,我还在学习基础知识:))