2

有没有办法检查函数是否返回任何值。例如:

if(loop(value) --returns a value--) { 
    //do something
}

function loop(param) {
    if (param == 'string') {
        return 'anything';
    }
}
4

4 回答 4

9

不返回对象或原始类型的函数返回未定义。检查未定义:

if(typeof loop(param) === 'undefined') {
    //do error stuff
}
于 2013-06-25T02:38:38.813 回答
3

没有的函数return将返回undefined。你可以检查一下。

但是,return undefined函数体中的 a 也会返回undefined(显然)。

于 2013-06-25T02:36:44.487 回答
1

你可以这样做 :

if(loop(param) === undefined){}

每次都有一个例外,如果你的函数 return undefined,它将进入循环。我的意思是,它返回一些东西,但它是未定义的......

于 2013-06-25T02:44:13.980 回答
0

如果你想在函数返回的情况下对函数的输出做一些事情,首先将它传递给一个变量,然后检查该变量的类型是否为"undefined".


演示

testme("I'm a string");
testme(5);

function testme(value) {
  var result = loop(value);
  if(typeof result !== "undefined") { 
    console.log("\"" + value + "\" --> \"" + result + "\"");
  } else {
    console.warn(value + " --> " + value + " is not a string");
  }

  function loop(param) {
    if (typeof param === "string") {
      return "anything";
    }
  }
}

于 2017-07-14T09:10:57.920 回答