[英]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.