Javascript iLife是否总是返回未定义的值?

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

在下面截取的代码中,为什么变量foo的内容没有定义?我在期待我们的生命声明会有回报

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”?(对不起,我还在学习基础知识:))