我可以在javascript函数中返回2种不同的数据类型吗

时间:2018-07-27 23:44:32

标签: javascript function return

鉴于2个条件,我想按以下方式返回对象或布尔值:

function foo() {

  if (a==b) {
    return {
      bool: bool,
      string: "string"
    };
  } else {
    return false;
  }
}

function callFoo() {

  var obj = foo();
}

这似乎对我来说是失败的。 IE出于某种原因也不会达到断点,因此我很难解决问题。

致谢。

2 个答案:

答案 0 :(得分:1)

是的,在Javascript中,您可以从同一函数返回不同的类型。看下面的例子:

function getAnswer(input) {
  if (input == "foo") {
    return "bar";
  }
  else if (input == true) {
    return true;
  }
  else if (input == 100) {
    return {
      type:"number",
      value:100,
    }
  }
  return false;
}

// Different inputs
console.log(getAnswer("foo"));
console.log(getAnswer(true));
console.log(getAnswer(100));
console.log(getAnswer(false));

答案 1 :(得分:0)

我想我了解您,但我不确定。如果我错了,请修复我:

function foo(a, b) {

  if (a==b) {
    return {
      bool: true,
      string: "string"
    };
  }
  return false;
}


function callFoo(a, b) {
  var obj = foo(a, b);
  console.log(obj);
}

callFoo(1, 1);
callFoo(1, 2);