如果你没有返回任何东西,为什么函数会返回undefined? JavaScript的

时间:2016-01-19 06:57:34

标签: javascript function undefined

我有一个像这样的功能

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

1 个答案:

答案 0 :(得分:3)

  

为什么我未定义?当我不想回东西的时候?

你得到undefined,因为函数总会返回一些东西。如果没有显式的return语句,则返回默认值。根据{{​​3}}

,函数的默认值为undefined
  

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