我有一个像这样的功能
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
?
答案 0 :(得分:3)
为什么我未定义?当我不想回东西的时候?
你得到undefined
,因为函数总会返回一些东西。如果没有显式的return语句,则返回默认值。根据{{3}}
undefined
要返回默认值以外的值,函数必须具有 return语句,指定要返回的值。一个功能 没有return语句将返回默认值。如果是 使用new关键字调用的构造函数,默认值为 其参数的值。 对于所有其他功能,默认 返回值未定义。