繁体   English   中英

如果不返回任何函数,为什么函数返回未定义? Java脚本

[英]Why would a function return undefined if you're not returning anything? Javascript

我有这样的功能

var tellMeTrueOrFalse = function(collection, callback){
    each(collection, function(item){ 
            console.log((callback(item))?true:false);
        } 
    );
};

each函数的行为都类似于下划线的_.each )。 但是,当我尝试console.log() ,以下内容:

tellMeTrueOrFalse([1,2,3], function(x) {return x%2 == 0;})

我懂了

false
true
false
undefined

为什么我变得undefined? 当我不尝试退货时? 如何获得仅打印而不返回undefined

为什么我变得不确定? 当我不尝试退货时?

您将变得undefined因为函数将始终返回某些内容。 如果没有显式的return语句,则返回默认值。 根据Mozilla文档,函数的默认值是undefined

要返回默认值以外的值,函数必须具有一个return语句,该语句指定要返回的值。 没有return语句的函数将返回默认值。 对于使用new关键字调用的构造函数,默认值为其this参数的值。 对于所有其他功能,默认返回值是未定义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM